資料結構鍊錶 頭插法 尾插法 雙向鍊錶

2021-08-22 08:35:02 字數 1603 閱讀 7131

我們最近學了資料結構鍊錶中的尾插法,頭插法,雙向鍊錶

鍊錶的步驟

1.申請乙個新的節點空間

2.給新的節點賦值資訊域

3.修改這個節點的指標域,將節點連線起來

尾插法:顧名思義就是從節點的尾部進行插入,首先申請乙個節點空間,給新的節點賦值資訊域,然後修改這個

節點的指標域,寫鍊錶首先要判斷頭節點是否為空,第一步,如果節點為空,將新的節點位址複製給頭節點,如果頭節點

不為空,要定義乙個尾節點。專門來找鍊錶的尾巴,如果尾巴的指標域為空,就把尾巴的節點指向尾巴的下乙個節點,如果

尾節點的指標域不為空,尾巴指向下乙個節點,pear=prea->next;

**如下

bool insert(pnode*pph)

else

return true;

}

頭插法:顧名思義就是從節點的頭部插入,首先要申請乙個新的節點空間,給新的節點賦值資訊域,將頭指標指向這個新的節點,

在要插入節點時候,將新的節點的指標域指向頭節點指向的指標域,pnew->next=*pph ,然後將這個新的節點的位址賦值給頭節點

*pph=pnew;

**如下

bool insert(pnode*pph)

雙向鍊錶:就是鍊錶即有前驅節點,又有後驅節點,首先申請乙個新的節點空間,然後判斷頭節點是否為空,如果為空,將pnew->next=*pph,

pnew->front=null;最後將頭節點指向新的節點,*pph=pnew, 又增加了乙個節點,此時,還是判斷頭節點是否為口,此時不為空,pnew->next=*pph,

將新節點的指標域指向頭節點指向的節點,將新節點的前驅節點指向空,pnew->front=null; 還是頭節點指向新的節點,*pph=pnew

**如下

bool insert(pnode *pph,dtype msg)

pnew->next=*pph;

pnew->front=null;

*pph=pnew;

return true;

}

因為方便我把所有的結構體型別都重新命名

**如下

struct student;   宣告

struct nd;

struct student dtype;

struct nd* pnode;

struct student

;struct nd

;

節點的刪除,利用雙指標,乙個頭指標,乙個尾巴指標,用尾巴指標找到這個 想要刪除的節點,將頭指標指向尾巴的下乙個節點

bool delete(node*pph,int d)

if(null!=rear)

else 如果尾巴節點不等於頭

free(rear);

return true;

}return true;

}

資料結構 鍊錶 頭插法和尾插法建立單鏈表

尾插法比較常用,尾插法需要利用乙個頭結點。頭插法不需要頭結點,但是需要乙個空指標。include include typedef struct node linklist linklist create front 頭插法建立單鏈表 linklist create end 尾插法建立單鏈表 void...

單鏈表頭插法尾插法

標頭檔案如下 ifndef linklist h define linklist h define success 10000 define failure 10001 define size 10 typedef int element struct node typedef struct nod...

C C 鏈 表 頭插法 尾插法

include stdafx.h include iostream using namespace std struct node node phead null 一開始沒有節點 先設定乙個空節點作為頭節點 此頭節點 資料data null,next null void addhead int d ...