資料結構之鍊錶

2021-10-25 21:17:41 字數 429 閱讀 7908

鍊錶相關演算法題

雙鏈表:與單鏈表不同的是,雙鏈表的每個結點中都含有兩個引用字段。

鍊錶的優點如下:

鍊錶能靈活地分配記憶體空間;

能在 o(1) 時間內刪除或者新增元素,前提是該元素的前乙個元素已知,當然也取決於是單鏈表還是雙鏈表,在雙鏈表中,如果已知該元素的後乙個元素,同樣可以在 o(1) 時間內刪除或者新增該元素。

鍊錶的缺點是:

不像陣列能通過下標迅速讀取元素,每次都要從煉表頭開始乙個乙個讀取;

查詢第 k 個元素需要 o(k) 時間。

應用場景:如果要解決的問題裡面需要很多快速查詢,鍊錶可能並不適合;如果遇到的問題中,資料的元素個數不確定,而且需要經常進行資料的新增和刪除,那麼鍊錶會比較合適。而如果資料元素大小確定,刪除插入的操作並不多,那麼陣列可能更適合。

leetcode兩兩交換鍊錶中的節點(24)

資料結構 表之煉表

頭插法建立 尾插法建立 顯示 銷毀 include include using namespace std typedef int elemtype typedef struct lnode linklist void createlinklistf linklist l,elemtype a,in...

資料結構之鍊錶

頭結點 第乙個有效結點之前的那個結點 頭結點並不存有效資料 加頭結點的目的主要是為了方便對鍊錶的操作 頭指標 指向頭結點的指標變數 尾指標 指向尾節點的指標變數 如果希望通過乙個函式對鍊錶進行處理,只需要乙個引數 頭指標 首先要定義乙個單鏈表儲存結構 然後建立乙個空表,即初始化,我寫的這個提前設定好...

資料結構之鍊錶

鍊錶是一種基本的資料結構型別,它由乙個個結點組成。每乙個結點包括乙個資料的儲存和乙個指向下乙個結點的引用。在這個定義中,結點是乙個可能含有任意型別資料的抽象實體,它所包含的指向結點的應用顯示了它在構造鍊錶之中的作用。和遞迴程式一樣,遞迴資料結構的概念一開始也令人費解,但其實它的簡潔性賦予了它巨大的價...