C++連結串列小冊子

AbstractJava發表於2024-04-05

目錄
  • 1.簡記
  • 2.多說兩句
  • 3.演算法題

1.簡記

對於C++連結串列類的建立,有以下簡記:

  • 堆分配,new作為右值。返回指標。物件生命週期手動管理,需要顯式刪除(deleteListNode dummy(0);

  • 棧分配,返回ListNode。僅在作用域內生效(和常見的初始化int一樣)。要得到ListNode指標需要&取地址

2.多說兩句

ListNode dummy(0);是棧分配。這裡dummy 是一個區域性變數,它的型別是 ListNode。這裡,dummy 是一個區域性變數,它的型別是 ListNode,並且透過呼叫 ListNode 的建構函式(帶有一個整數引數)來初始化。這個物件儲存在棧上,這意味著它的生命週期與其所在的作用域(通常是一個函式)繫結:一旦出了作用域,這個物件會自動被銷燬。

new 關鍵字用於動態地在堆上分配記憶體,並返回一個指向新分配的物件的指標。這個新物件是透過呼叫 ListNode 的建構函式初始化的。與棧分配的物件不同,堆分配的物件不會在離開作用域時自動銷燬。它們會一直存在,直到透過 delete 操作顯式地被刪除。這種方式允許在函式呼叫結束後仍保持物件存在,但要求開發者負責管理物件的生命週期,包括避免記憶體洩漏。

3.演算法題

題目、題解:
21. 合併兩個有序連結串列
21. 合併兩個有序連結串列-二路歸併(雙指標)
2. 兩數相加
2. 兩數相加-高精度連結串列版+自用語法筆記

相關文章