單鏈表結合

2021-09-10 09:47:03 字數 2927 閱讀 7187

單鏈表就是包含著資料域和指標域,它不像陣列那樣連續分配空間的,它是連續的,所以儲存乙個連線下乙個資料的指標域,也就是struct node*next,。

//尾插法

#includeusing namespace std;

typedef struct node

node;

void showlist(node*head) }

node* creatlist()

//建立 乙個空鍊錶

//頭插法

#if 1

#includeusing namespace std;

typedef struct node

node;

void showlist(node*head) }}

node* creatlist()

//建立 乙個空鍊錶

//資料的刪除

//尾插法

#includeusing namespace std;

typedef struct node

node;

void showlist(node*head)

}node* creatlist()

//建立 乙個空鍊錶

int data;

cin >> data;

while (data)

t->next = null;

return head;

}void deletedata(node*head)

while (p != null)

q = p;//4

p = p->next;//5 }}

int main()

在刪除的時候,要注意如果刪除的資料是第乙個資料的時候,要另外討論,在寫這個**的時候,我就忽略了,然後就想了一下,刪除第一資料怎麼辦。還要注意的一點就是head不儲存資料。

補充還是有問題,如果1 1 1 2 3 54,那麼就出錯!

資料的反轉

//資料的反轉

#includeusing namespace std;

typedef struct node

node;

void showlist(node*head)

}node* creatlist()

//建立 乙個空鍊錶

資料的插入(本質:頭插法)

//尾插法

#includeusing namespace std;

typedef struct node

node;

node* creatlist()

//建立 乙個空鍊錶

int data;

cin >> data;

while (data)

t->next = null;

return head;

}void showlist(node*head)

cout << endl;

}void insertdata(node*head)

int main()

鍊錶的氣泡排序

//尾插法

#includeusing namespace std;

typedef struct node

node;

node* creatlist()

//建立 乙個空鍊錶

單鏈表(合併單鏈表)

單鏈表遍歷 單鏈表遍歷是從單鏈表頭指標head開始訪問,沿著next指標所指示的方向依次訪問每乙個結點,且每個結點只能訪問依次,直到最後乙個結點為止。遍歷時注意,不要改變head指標的指向。因此一般設定另外的乙個指標變數如p,p從head開始依次訪問乙個結點,直到鍊錶結束,此時p null,完成依次...

單鏈表之排序單鏈表

package list public class sortedsinglylist extends singlylist 將values陣列中的所有物件按值大小插入 public sortedsinglylist t values 過載深拷貝,由單鏈表構建排序單鏈表 public sortedsi...

單鏈表 雙鏈表

實現乙個單鏈表,鍊錶初始為空,支援三種操作 1 向煉表頭插入乙個數 2 刪除第k個插入的數後面的數 3 在第k個插入的數後插入乙個數 現在要對該鍊錶進行m次操作,進行完所有操作後,從頭到尾輸出整個鍊錶。注意 題目中第k個插入的數並不是指當前鍊錶的第k個數。例如操作過程中一共插入了n個數,則按照插入的...