實習目的:熟練掌握鍊錶的建立及基本操作
問題描述:
1)實現鍊錶的排序(公升序)
2)實現兩個有序鍊錶的合併:a=a∪b,要求合併後仍然有序。
提交前請將所有的提示資訊去掉,只保留最後的輸出結果。例如執行時:從鍵盤直接輸入:
2 1 2
3 1 2 3
輸出結果為:12
3分別表示第乙個鍊錶元素個數為2,元素分別為 1,2 ;第二個鍊錶元素個數為3,元素分別為1,2,3。
例如:輸入
result
2 2 13 1 2 3
123
第一問是通過對鍊錶的操作,利用氣泡排序,完成該操作。
對於第二問則是利用查詢來實現a=a∪b
實現過程:
一、首先構造鍊錶
1class
list;
2class
linknode
313 linknode(const
int & item, linknode *ptr =null)
1418 ~linknode() {};
19};
20class
list
21//建構函式,開闢新空間
2930
void qsort ( int
n);//排序
31void insert (int
x );//插入
32void
union(list b);//並運算
33void input(int
endtag);//輸入
34void
output();//輸出
35 };
二、利用前插法構建鍊錶
1void list :: input (intn)2
13 }
三、利用冒泡進行排序
void list ::qsort ( intn) p=p->link;}}
}
四、利用查詢進行合併
void list ::union(list b)
p1=p1->link;
}if(f==0)
p=p->link;}}
附錄:插入函式
1void list ::insert (int
x )2
五、進行輸出
1void
list ::output ( )
29 }
六、主程式
1intmain()
2
七、簡單介紹
本部落格寫的比較傻瓜,比較簡單,因為是早期寫的程式,有些地方呼叫不太合理,請見諒。
鍊錶的基本操作
include include include include using namespace std struct listnode void initnode listnode node bool isempty listnode head void pushfront listnode hea...
鍊錶的基本操作
鍊錶操作是最基本的 必須掌握的知識點,最好滾瓜爛熟,透徹理解。工作時間短用的也不夠頻繁,還是總結一下比較好,以加強鞏固。1.單鏈表 結點形式 區分幾個概念 首節點 第乙個元素所在節點。頭指標 指向首節點的指標。頭結點 為了操作方便,在第乙個節點之前附設的乙個結點,此時指向頭結點的為頭指標。基本操作 ...
鍊錶的基本操作。。。
include node.h 列印鍊錶 void print node head printf n 從尾部插入 void insert tail node head,const int d while t next null t next p p next null 從頭部插入 void inser...