我們最近學了資料結構鍊錶中的尾插法,頭插法,雙向鍊錶
鍊錶的步驟
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 ...