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