鍊錶銷毀與清空

2021-07-02 14:51:46 字數 449 閱讀 5896

銷毀:

status destroylist(linklist *l)

return ok;

}清空:

status clearlist(linklist l) /* 不改變l */

l->next=null; /* 頭結點指標域為空 */

return ok;

}針對上面兩個函式有以下幾個問題:

1、銷毀函式中頭指標的空間怎麼釋放的?

2、鍊錶的清空和銷毀區別是什麼?請詳細講一下上面兩個函式的原理。

銷毀的時候,是先銷毀了鍊錶的頭,然後接著乙個乙個的把後面的銷毀了,這樣這個鍊錶就不能再使用了

清空的時候,是先保留了鍊錶的頭,然後把頭後面的所有的都銷毀,最後把頭裡指向下乙個的指標設為空,這樣就相當與清空了,但這個鍊錶還在,還可以繼續使用

鍊錶的銷毀與清空

鍊錶本身是乙個資料結構,清空是把鍊錶中的元素清空,但鍊錶還存在,銷毀則是把鍊錶這個結構的記憶體都釋放了。清空是鍊錶沒節點,但是鍊錶還在,可以繼續插入節點。銷毀就是鍊錶沒了,整個鍊錶的空間都被釋放了,不能進行任何操作了。就像乙個杯子,把杯子裡的水倒掉叫清空,把杯子砸碎叫銷毀。清空鍊錶與銷毀鍊錶的 如下...

順序表和煉表的清空,銷毀,建構函式

len,size,elem,這仨合起來看作是表的頭目,呼叫建構函式首先為這個 頭目 這仨資料分配空間,表的元素有沒有空間分配要看m的值。主要是關於空間的分配問題 建構函式是來建立乙個空表,令len 0,就說明沒有資料元素這就是乙個空表了。至於有沒有空間,也就是size是多少與空表沒有關係,所以m 0...

鍊錶建立,使用,銷毀

建立乙個鍊錶並輸出最後銷毀鍊錶 include include define n 5 鍊錶節點個數 struct node void creat linklist node l 建立 for i 1 i n 2 i 中間元素賦值 scanf d num 最後乙個元素賦值 p data num p n...