回覆列表
  • 1 # 使用者9020153659432

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

    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;

    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指向連結串列中頭結點後面的第一個結點

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

    }

    }

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

  • 中秋節和大豐收的關聯?
  • 中秋節的古詩二年級?