typedef int elemtype; 定義elemtype為int型別
//鍊錶有資料域和指標域
//鍊錶輸出因為建立的鍊錶含有頭結點,所以新設了乙個變數p,使p=l->next;如果沒有頭結點的話,完全可以不設pstruct lnode;
typedef lnode* linklist; 給結構體更名
//鍊錶的插入不像順序表一樣記錄位置 ,linklist後面的&可以不用加void show(linklist l)
cout/給鍊錶分配空間 ,即就是建立頭結點,給頭結點分配空間
新建立的結點,其next指標都不能懸空
輸入的時候分 頭插和尾插,頭插法:每一次在頭結點的後面插入資料 即s->next=l->next; l->next=s;兩句的順序千萬不能顛倒
尾插法:需要記錄鍊錶的尾端 即tail->next=s;tail=s; 把s掛接在尾端
在建立鍊錶的時候若l->null是沒有頭結點的,若l->next=null代表是有頭結點的/
void created_l(linklist& l,int n)
// show(l);
}
//找到第i個元素 因為鍊錶中沒有length,所以要時刻預防鍊錶為空的時候即 l->=null的時候
//鍊錶的刪除void insertlist(linklist l,int i,elemtype e)
if(j==i)
show(l);
}
//找到指定元素void deletelist(linklist& l,int i,elemtype& e)
if(j==i)
show(l);
}
/*兩個鍊錶的合併void getelem(linklist l,elemtype e)
}
la lb公升序,合成公升序的lc ,la lb比較小的接在lc的尾端,
la lb逆序,合成降序的lc,la lb比較小的插在lc頭結點的後面(頭插法可以實現逆序)
1.先建立乙個新錶
*/
在main函式中呼叫void mergelist(linklist& la,linklist& lb,linklist& lc)
else
} while(pa)
while(pb)
show(lc);
}
int main()
鍊錶插入刪除
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...
鍊錶的插入 刪除
include include include define true 1 define false 0 define ok 1 typedef struct l list list,plist plist create list int len 建立乙個單鏈表 bool show list pli...
鍊錶的插入 刪除
雙向鍊錶的插入 第一步 首先找到插入位置,節點 s 將插入到節點 p 之前 第二步 將節點 s 的前驅指向節點 p 的前驅,即 s prior p prior 第三步 將節點 p 的前驅的後繼指向節點 s 即 p prior next s 第四步 將節點 s 的後繼指向節點 p 即 s next p...