鍊錶的基本操作

2021-06-16 16:25:12 字數 1499 閱讀 3153

鍊錶操作是最基本的、必須掌握的知識點,最好滾瓜爛熟,透徹理解。工作時間短用的也不夠頻繁,還是總結一下比較好,以加強鞏固。

1. 單鏈表

結點形式

區分幾個概念:

首節點:第乙個元素所在節點。

頭指標:指向首節點的指標。

頭結點:為了操作方便,在第乙個節點之前附設的乙個結點,此時指向頭結點的為頭指標。

基本操作:

(1)返回指定元素

status getelem_l(linklist l,int i,elemtype &e)

if(!p || j>i)  return error;

e=p->data;

return ok;

} //getelem_l

(2)插入元素

status listinsert_l(linklist &l, int i, elemtype &e)

if(!p || j>i-1)  return error;

s=(linklist)malloc(sizeof(lnode));

s->data=e; s->next=p->next; p->nextt=s;

return ok;

} //listinsert_l

(3)刪除元素

statue listdelete_l(linklist &l, int i, elemtype &e)

if(!(p->next) || j>i-1)  return error;

q=p->next;  p->next=q->next;

e=q->data; free(q);

return ok;

} //listdelete_l

(4)建立鍊錶

void createlist_l(linklist &l,int n)

}// createlist_l

2. 雙向鍊錶

結點形式

(1)插入元素

status listinsert_dul(dullinklist &l,int i,elemtype e)

// listinsert_dul

(2)刪除元素

status listdelete_dul(dullinklist &l,int i,elemtype &e)

// listdelete_dul

(3)合併鍊錶

void mergelist_l(linklist &la,linklist &lb,linklist &lc)

else    

pc->next=pa?pa:pb;

free(lb); //釋放頭結點    

}// mergelist_l

3. 帶頭結點的迴圈鍊錶

尾節點:*r;  頭結點:*(r->next)  首節點:*(r->next->next)

int listlength_cl(linklist l)

return n;

}// listinsert_cl

鍊錶的基本操作

include include include include using namespace std struct listnode void initnode listnode node bool isempty listnode head void pushfront listnode hea...

鍊錶的基本操作。。。

include node.h 列印鍊錶 void print node head printf n 從尾部插入 void insert tail node head,const int d while t next null t next p p next null 從頭部插入 void inser...

鍊錶的基本操作

head代表第乙個指標,前面加了乙個dummy節點,方面用來處理頭指標。include using namespace std struct linknode 建立只有空鍊錶,返回乙個dummy節點 linknode createlink linknode initlink linknode dum...