單鏈表刪除節(jié)點(diǎn) 單鏈表的插入和刪除結(jié)點(diǎn)的核心語(yǔ)句?
單鏈表的插入和刪除結(jié)點(diǎn)的核心語(yǔ)句?Statuslistinsert(LinkList&l,inti,elemtype){//在沒(méi)有head節(jié)點(diǎn)的單鏈線性表l的第i個(gè)位置前插入元素eintj=1/
單鏈表的插入和刪除結(jié)點(diǎn)的核心語(yǔ)句?
Statuslistinsert(LinkList&l,inti,elemtype){//在沒(méi)有head節(jié)點(diǎn)的單鏈線性表l的第i個(gè)位置前插入元素eintj=1//初始計(jì)數(shù)器值為1linklists,P=l//P指向第一個(gè)節(jié)點(diǎn),如果(i<1)//值非法,returnerrors=(LinkList)malloc(sizeof(lnode))//生成一個(gè)新節(jié)點(diǎn),并將其插入到L.s->data=E//將EIF(I==1)賦給s的數(shù)據(jù)字段)//在頭中插入{s->next=L//新節(jié)點(diǎn)指向原始的第一個(gè)節(jié)點(diǎn),L=s//L指向新節(jié)點(diǎn)(更改L)}否則{//插入表的其余部分,同時(shí)(P&&;amp;j<i-1)//查找I-1st節(jié)點(diǎn){J//counter 1p=P->next//P指向下一個(gè)節(jié)點(diǎn)}如果(!P) //I大于表長(zhǎng)度1returnerror//insert failed s->next=P->next//新節(jié)點(diǎn)指向原始第I個(gè)節(jié)點(diǎn)P->next=s//原始第I個(gè)節(jié)點(diǎn)指向新節(jié)點(diǎn)}return OK//insert successed}statuslistdelete(LinkList&MPL,inti,ElemType&){//在沒(méi)有頭節(jié)點(diǎn)的單鏈線性表l中,刪除第i個(gè)元素并返回其值intj=1//初始計(jì)數(shù)器值為1linklistq,P=l//P指向第一個(gè)元素節(jié)點(diǎn)if(!五十) //表L empty returnerror//delete failed else if(I==1)//刪除第一個(gè)節(jié)點(diǎn){L=P->next//L從第二個(gè)節(jié)點(diǎn)開始(更改L)e=P->data//將要?jiǎng)h除的節(jié)點(diǎn)的值賦給EFREE(P)//刪除并釋放第一個(gè)節(jié)點(diǎn)}else{while(P->next&&;ampj<i-1)//找到I節(jié)點(diǎn)并將P指向其前體{J//counter 1p=P->next//P指向下一個(gè)節(jié)點(diǎn)}if(!P->next | J>i-1)//刪除位置不合理,returnerror//刪除失敗q=P->next//q指向要?jiǎng)h除的節(jié)點(diǎn)P->next=q->next//要?jiǎng)h除的節(jié)點(diǎn)的前導(dǎo)節(jié)點(diǎn)指向要?jiǎng)h除的節(jié)點(diǎn)的后繼節(jié)點(diǎn)e=q->data//將節(jié)點(diǎn)的值賦給EFREE(q)//釋放要?jiǎng)h除的節(jié)點(diǎn)}returnok//刪除成功}