鍊錶的插入和刪除

2021-08-21 06:58:49 字數 672 閱讀 2855

while (null!=p && ipnext;

++i; }

if (null==p || i>pos-1)

while (null!=p->pnext && ipnext;

++i; }

if (null==p->pnext || i>pos-1)

pos為位置,

1.不正常執行:

(1)位置為(pos<1),依靠(i>pos-1)來報錯,

(2)比鍊錶結點個數多(插入需要多2)的用null!=p/(p->pnext)終止迴圈,用null== p/(p->pnext)報錯,即return false

***產生 插入:null!=p  null == p 和 刪除:null!=p->pnext   null==p->pnext的區別:

(1)插入尾結點後面即尾結點-->pnext

(2)不能刪除尾結點後面即尾結點->pnext所指結點(不存在)

所以 插入 可以比 刪除 多1個處理位置

2.正常執行:

(1)位置pos=1的時候,跳過while和if

(2)p最後為插入或刪除位置的前乙個結點 依靠  i控制

總結,體會到頭結點的好處。

鍊錶的刪除和插入

struct student del struct student head,long num p1 head while num p1 num p1 num null if num p1 num else p2 next p1 next printf delete ld n num n n 1 e...

靜態鍊錶的插入和刪除

靜態鍊錶相當於是用乙個陣列來實現線性表的鏈式儲存結構,在靜態鍊錶中操作的是陣列。結構體陣列 一 靜態鍊錶的插入操作 靜態鍊錶的插入操作包含兩部分,首先是獲得空閒量的下標,程式 如下 int getcur staticlinklist tan 要想更好的理解,最好結合乙個靜態列表的例項來掌握,下面給出...

鍊錶插入刪除

include include typedef struct node node,linklist void createlist linklist head 建立鍊錶 s node malloc sizeof node s next null s data data p next s p s in...