當前位置:編程學習大全網 - 編程軟體 - 順序表、鏈表清空和銷毀

順序表、鏈表清空和銷毀

我正好在學數據結構,以下是我的理解,自以為還比較靠譜。妳參考著看吧。

ClearList只是把線性表中原來存儲元素的空間中存的那些元素都清除了,類似於把原線性表改成壹個空的線性表,但這個線性表是確實存在的。

而Destroy是把整個線性表占的空間都釋放了,這個線性表結構都不存在了,下次想做壹個線性表只能重新初始化。

下面是我在老師給的課件找到的粗略算法:

順序表的:

銷毀線性表L

void DestroyList(SqList*L)

{

if (L->elem) free(L->elem); //釋放線性表占據的所有存儲空間

}

清空線性表L

void ClearList(SqList*L)

{

L->length=0; //將線性表的長度置為0

}

鏈表的:

銷毀鏈表L

void DestoryList(LinkList *L)

{

NODE *p;

while (L->head){ //依次刪除鏈表中的所有結點

p=L->head; L->head=L->head->next;

free(p);

}

}

清空鏈表L

void ClearList(LinkList *L)

{

NODE *p;

while (L->head->next){

p=L->head->next; //p指向鏈表中頭結點後面的第壹個結點

L->head->next=p->next; //刪除p結點

free(p); //釋放p結點占據的存儲空間

}

}

具體的在C環境編程實現的話還要加工下的。

希望能給妳點啟發!

  • 上一篇:有了電腦,還要花功夫去練寫字嗎?請說出四個理由!
  • 下一篇:編程2017題
  • copyright 2024編程學習大全網