單鏈表的建立 排序和翻轉

2021-09-08 23:57:39 字數 864 閱讀 9978

鍊錶:

1、注意是否有帶頭結點。

2、單鏈表的建立:順序建表(尾插法)、逆序建表(頭插法)。

3、單鏈表的插入、刪除操作需要尋找前驅結點。

單鏈表的建立、排序和翻轉,都是針對有頭結點的單鏈表。

#include using

namespace

std;

typedef

struct

node

node,*list;

//順序建表:尾插法

void createlinklist(list& l, intn)}

//逆序建表:頭插法

void createlinklist2(list& l, intn)}

void

printlinklist(list l)

cout

<}int getlength(node *head)

return

len;

}void destroylist(list &l)}//

採用插入法將單鏈表中的元素排序。

void insertionsort(list &l)}//

採用選擇法將單鏈表中的元素排序。

void selectionsort(list &l)

m=q->next; //

找到最小m

//最小元素m插入有序序列末尾(p之後)

if (q!=p)

p=p->next; //

l->next至p為有序序列}}

//單鏈表就地逆置

void reverselist(node*h)

}int

main()

建立線性單鏈表,並將單鏈表翻轉

package 資料結構 public class lianbiao public lianbiao 首先建立單鏈表的結點類。package 資料結構 鍊錶反轉 class lianbiao2 extends lianbiao1 public lianbiao2 int n public void ...

單鏈表的建立 翻轉與列印

使用者給定乙個陣列,用陣列中元素建立鍊錶並翻轉。include include 單鏈表節點的定義 typedef struct node listnode 單鏈表的列印 void display listnode list printf n 單鏈表的建立 listnode creatlist int...

單鏈表翻轉

關於單鏈表的翻轉問題頗為困擾人。下面寫的程式只需遍歷每個節點一次,並且不需要構造輔助接點 通過new的方式 另外這個問題可以轉換為乙個迴圈鍊錶結構,很有意思。h struct node class cdatastruct cpp檔案 cdatastruct cdatastruct void cdat...