鍊錶
鍊錶是一種物理儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列結點(鍊錶中每乙個元素稱為結點)組成,結點可以在執行時動態生成。每個結點包括兩個部分:乙個是儲存資料元素的資料域,另乙個是儲存下乙個結點位址的指標域。 相比於線性表順序結構,鍊錶比較方便插入和刪除操作。
建立頭節點
手動new乙個新的node,將node的next置為null即可。
從頭插入乙個新的節點
手動new出乙個新的節點p,使p的next的指向head->next所指向的位址,然後將head->next從新指向p即可。
刪除指定節點
先遍歷到指定節點的前乙個節點,然後通過將前乙個節點的next指標指向指定節點的下乙個節點,達到懸空指定節點的效果,然後刪除指定節點即可。**請參照後面的完整**。
修改指定節點
遍歷到指定節點的位置,將其data修改為要修改的值即可。修改**請參考後面的完整**。
鍊錶反轉
定義三個臨時節點指向頭結點之後的第1個節點p,第2個節點q和第3個節點m。將p->next置為空,然後將q->next = p,然後將p向後移動乙個節點,即p = q,最後將q向後移動乙個節點,即q = m,最後把m向後移動乙個節點,即m = m->next;依此類推直到m等於null,然後將q->next = p,最後將head->next指向q(即目前第乙個節點疑,也就是原本最後的乙個節點)。
通過三個節點達到從頭開始逐個逆序的目的。反轉**請參考後面的完整**。
完整**如下:
1//2list4//
5//created by scandy_yuan on 13-1-6.6//
7//89 #include 10
using
namespace
std;
1112
class
list
15 ~list()
16//
建立頭結點
17void
create_list();
18//
插入函式
19void insert(const
int&d);
20//
在指定位置插入
21void insert_pos(const
int& d,const
int&d1);
22//
刪除指定資料的節點
23void erase(const
int&d);
24//
修改指定資料
25void updata(const
int& d,const
int&d1);
26//
反轉鍊錶函式
27void
reverse();
28//
列印29
void
print();
30private:31
//節點結構
32struct
node
36};
37 node * head;//
頭節點38
//清理鍊錶函式
39void
clear()47}
48//
查詢資料d的上乙個節點位置的函式
49//
為了方便後面刪除操作
50 node* find(const
int&d)
56return
p;57}58
};59
60//
建立頭結點
61void
list::create_list()
6265
//從頭插入乙個節點
66void list::insert(const
int&d)
6772
//列印函式
73void
list::print()
7478}79
//在d位置之前插入d1
80void list::insert_pos(const
int& d,const
int&d1)
8187
88//
刪除89
void list::erase(const
int&d)
90101
102//
修改指定資料
103void list::updata(const
int& d,const
int&d1)
104108
109//
反轉鍊錶
110void
list::reverse()
111123
//將最後乙個節點逆序
124 q->next =p;
125//
將頭從新指向新的的第1個節點(之前的最後乙個節點)
126 head ->next =q;
127}
128129
int main(int argc, const
char *argv)
130
C 單鏈表基本操作分析與實現
鍊錶 鍊錶是一種物理儲存單元上非連續 非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列結點 鍊錶中每乙個元素稱為結點 組成,結點可以在執行時動態生成。每個結點包括兩個部分 乙個是儲存資料元素的資料域,另乙個是儲存下乙個結點位址的指標域。相比於線性表順序結構,鍊錶比較...
單鏈表及基本操作與實現
單鏈表的基本操作及基本實現如下 include stdio.h include stdlib.h typedef int elemtype typedef struct lnodelnode,linklist linklist initlist linklist l 初始化鍊錶 bool listi...
C 實現單鏈表的基本操作
結點類 關鍵處在c語言中用指標來指向下乙個節點,c 是物件導向的,用節點類的乙個屬性 next屬性 來指向下乙個節點物件 public class linknode set private linknodenext public linknodenext set endregion public l...