線性表的有關操作

2021-08-14 14:05:39 字數 2652 閱讀 4735

實驗名稱: 線性表的有關操作

實驗室名稱:

實驗台號:

學生姓名: 

專業班級: 

指導教師:

實驗日期:2017-6-8

一、實驗目的1、

掌握單向鍊錶的儲存特點及其實現。

2、理解和掌握單鏈表的型別定義方法和結點生成方法。 3、

掌握單向鍊錶的插入、刪除演算法及其應用演算法的程式實現。

二、實驗儀器及環境:

pc計算機;windows xp作業系統、visual c++6.0、codeblocks 1、

#include

#include

#include

#include

using namespace std;

typedef struct nodelnode,*linklist;

linklist createfromhead()

return head;

linklist sort(linklist head)

linklist temp1,temp2,q,p;

for(q=head;q->next!=null;q=q->next)

for(p=q->next;p->next!=null;p=p->next)

if(p->next->datanext->data)

if(q->next==p)

temp1=p->next;

p->next=p->next->next;

temp1->next=q->next;

q->next=temp1;

p=temp1;

else

temp1=p->next;

temp2=q->next;

p->next=p->next->next;

q->next=q->next->next;

temp1->next=q->next;

q->next=temp1;

temp2->next=p->next;

p->next=temp2;

return head;

linklist hecheng(linklist head1,linklist head2){

linklist p;

p=head2;

while(p->next!=null)

p=p->next;

charu(head1,p->data);

return head1;

linklist sort_(linklist head)

linklist temp1,temp2,q,p;

for(q=head;q->next!=null;q=q->next)

for(p=q->next;p->next!=null;p=p->next)

if(p->next->data>q->next->data)

if(q->next==p)

temp1=p->next;

p->next=p->next->next;

temp1->next=q->next;

q->next=temp1;

p=temp1;

else

temp1=p->next;

temp2=q->next;

p->next=p->next->next;

q->next=q->next->next;

temp1->next=q->next;

q->next=temp1;

temp2->next=p->next;

p->next=temp2;

return head;

int main()

linklist head=null,p=null,head1=null,head2=null;

int x;

head=createfromhead();

cout<<"隨機產生的鍊錶資料如下:"show(p);

cout<<"*********逆置後鍊錶*********"p=daozhi(p);

show(p);

cout<<"*****刪除偶數元素後鍊錶*****"p=shanchu(p);

show(p);

cout<<"*******非遞減有序鍊錶*******"sort(p);

show(p);

cout<<"請輸入要插入的鍊錶元素:";

cin>>x;

cout<<"******插入新元素後鍊錶******"charu(p,x);

show(p);

cout<<"請鍵入兩個非遞減有序單向鍊錶"p=head1;

sort(p);

head2=createfromhead_();

p=head2;

sort(p);

cout<<"*****合併後的非遞減序列*****"show(p);

cout<<"*****合併後的非遞增序列*****"show(p);

return 0;

1、2、

3、4、

5、6、

7、8、

建立鍊錶時有頭,尾兩種建立方法,兩種方法遍歷資料元素時和建立的次序有所不同。

簽名: 年月日

線性表的有關操作

目的要求 掌握單向鍊錶的儲存特點及其實現。掌握單向鍊錶的插入 刪除演算法及其應用演算法的程式實現。實驗內容 隨機產生或鍵盤輸入一組元素,建立乙個帶頭結點的單向鍊錶 無序 遍歷單向鍊錶。把單向鍊錶中元素逆置 不允許申請新的結點空間 在單向鍊錶中刪除所有的偶數元素結點。編寫在非遞減有序鍊錶中插入乙個元素...

線性表操作

include stdio.h define maxsize 20 define overflow 1 define ok 1 define error 1 void init seqlist int length pointer 構造乙個空的線性表 int insert last int elem...

線性表操作

大概實現的功能 1 建立線性表類。線性表的儲存結構使用鍊錶。2 提供操作 自表首插入元素 刪除指定元素 搜尋表中是否有指定元素 輸出鍊錶。3 接收鍵盤錄入的一系列整數 例10,25,8,33,60 作為節點的元素值,建立鍊錶。輸出鍊錶內容。4 輸入乙個整數 例33 在鍊錶中進行搜尋,輸出其在鍊錶中的...