雙鏈表(王道講解部分) 7 15

2021-10-08 03:39:59 字數 1411 閱讀 7270

#include

#include

typedef

struct

dnode

dnode,*

dlinklist

;void

init

(dlinklist&l

)void

insert_head

(dlinklist&l

)//頭插法

else

printf

("ok2");

printf

("請輸入x:\n");

scanf

("%d",&

x);}

}void

insert_end

(dnode*&

l)//

尾插法while(x

!=999)

}void

print

(dlinklistl)

//輸出printf

("\n");

}bool

insert

(dnode*&

l,inte)/

/在第e個位置插入節點

(前插法)/

/得到鍊錶中最後乙個節點if(

i==e

)else}}

i=i;

printf

("i:%d\n",i

);if(

i==e

)return

false;}

bool

deletelist_e

(dnode*&

l,inte)/

/刪除值為e的結點

else

}return

false;}

bool

deletelist_n

(dnode*&

l,inte)/

/刪除序號為e的結點

else

}return

false;}

intmain()

else

printf

("插入failed!\n");

print(l1

);printf

("------\n");

if(deletelist_e(l1

,3))

else

printf

("刪除failed!\n");

print(l1

);printf

("**********\n");

if(deletelist_e(l2

,3))

else

printf

("刪除failed!\n");

print(l2

);return0;

}

王道資料結構 (29) 雙鏈表的操作

雙鏈表的初始化 1.先分配頭節點 2.頭節點的左指標 右指標為null 雙鏈表的插入 雙鏈表的插入需要判斷p 的 下乙個 節點 是否為 null 如下面兩個圖 如果 p的下乙個節點是空 會報錯 所以我們要進行判斷 執行順序 1 2 3 4 1 先將 s 的next 域指向原來p 指向的next 域 ...

單鏈表 雙鏈表

實現乙個單鏈表,鍊錶初始為空,支援三種操作 1 向煉表頭插入乙個數 2 刪除第k個插入的數後面的數 3 在第k個插入的數後插入乙個數 現在要對該鍊錶進行m次操作,進行完所有操作後,從頭到尾輸出整個鍊錶。注意 題目中第k個插入的數並不是指當前鍊錶的第k個數。例如操作過程中一共插入了n個數,則按照插入的...

單鏈表和雙鏈表

單鏈表 單鏈表只有乙個指向下一結點的指標,也就是只能next 雙鏈表 雙鏈表除了有乙個指向下一結點的指標外,還有乙個指向前一結點的指標,可以通過prev 快速找到前一結點,顧名思義,單鏈表只能單向讀取 為什麼市場上單鏈表的使用多餘雙鏈表呢?從儲存結構來看,每個雙鏈表的節點要比單鏈表的節點多乙個指標,...