鍊錶補充及鍊錶和陣列的區別

2022-03-10 23:52:55 字數 482 閱讀 5572

初稿:2017-11-19 13:05:57

不迴圈單鏈表:加頭結點,使得插入刪除操作相同,不必特別處理插入或刪除的是第乙個位置的情況。

迴圈單鏈表:引用引數是最後乙個結點的指標ptail,這樣既能迅速找到首結點phead = ptail->next,也能迅速獲取表尾。

不迴圈雙向鍊錶:p所指結點後插入結點q.  q->next = p->next; p->next->pre = q; p->next = q; q->pre = p;  

迴圈雙向鍊錶:引用引數首或尾都可。

陣列初始容量一旦確定,不能再改變,適合要處理的資料量已知的情況。

未知要處理的資料量使用陣列,可能造成空間浪費或容量不足,雖然有動態陣列可擴容,但是頻繁擴容會使系統產生很大的開銷。

按index查詢,陣列訪問元素時間複雜度是o(1),鍊錶是o(n)

鍊錶插入和刪除時間複雜度是o(1),陣列是o(n)

查詢值是value的某個元素,速度則相同。

鍊錶和陣列的區別

構建 陣列必須事先定義固定的長度 元素個數 不能適應資料動態地增減的情況。當資料增加時,可能超出原先定義的元素個數 當資料減少時,造成記憶體浪費 陣列可以根據下標直接訪問。鍊錶動態地進行儲存分配,可以適應資料動態地增減的情況,且可以方便地插入 刪除資料項。陣列中插入 刪除資料項時,需要移動其它資料項...

鍊錶和陣列的區別

鍊錶的特性是在中間任意位置新增刪除元素的都非常的快,不需要移動其它的元素。鍊錶顧名思義,要把各個元素鏈結起來才算撒。通常鍊錶每乙個元素都要儲存乙個指向下乙個元素的指標 單鏈表 雙鏈表的化每個元素即要儲存到下乙個元素的指標,還要儲存乙個上乙個元素的指標。迴圈鍊錶則把最後乙個元素中儲存下乙個元素指標指向...

鍊錶和陣列的區別

從邏輯結構來看 1.陣列必須事先定義固定的長度 元素個數 不能適應資料動態地增減的情況。當資料增加時,可能超出原先定義的元素個數 當資料減少時,造成記憶體浪費 陣列可以根據下標直接訪問。2.鍊錶動態地進行儲存分配,可以適應資料動態地增減的情況,且可以方便地插入 刪除資料項。陣列中插入 刪除資料項時,...