資料結構 4 鍊錶

2021-09-27 12:09:54 字數 2316 閱讀 6761

寫在開頭

節點 node

鍊錶資料結構建立 linkedlist,為保證節點資訊安全性,採用內部類方式進行構造

/**

* @author by jiangyf

* @classname linkedlist

* @description 鍊錶

* @date 2019/9/28 13:08

*/public

class

linkedlist

public

node

(e e)

public

node()

@override

public string tostring()

';}}

private node head;

int size;

public

linkedlist()

// 獲取鍊錶容量

public

intgetsize()

// 判斷鍊錶是否為空

public

boolean

isempty()

}

新增操作方法

獲取指定位置index的節點元素

public e get

(int index)

throws illegalacces***ception

// 定位到head節點

node cur = dummyhead.next;

for(

int i =

0; i < index; i++

) cur = cur.next;

return cur.e;

}

獲取頭結點、尾結點

public e getfirst()

throws illegalacces***ception

public e getlast()

throws illegalacces***ception

更新指定位置元素

public

void

set(

int index, e e)

throws illegalacces***ception

node cur = dummyhead.next;

for(

int i =

0; i < index ; i++

) cur = cur.next;

cur.e = e;

}

查詢鍊錶中是否存在元素

public

boolean

contains

(e e)

cur = cur.next;

}return

false

;}

刪除鍊錶元素節點

public e remove

(int index)

throws illegalacces***ception

// 定位到待刪除節點的前一節點

node prev = dummyhead;

for(

int i =

0; i < index -

1; i++

) prev = prev.next;

// 儲存待刪除節點

node retnode = prev.next;

// 跨過待刪除節點進行連線

prev.next = retnode.next;

// 待刪除節點next置空

retnode.next = null;

size --

;return retnode.e;

}public e removefirst()

throws illegalacces***ception

public e removelast()

throws illegalacces***ception

通過上述方法,我們可以分析得出:鍊錶的curd操作的平均時間複雜度均為o(n),鍊錶的操作均要進行遍歷。

仔細想想,如果對鍊錶的操作僅限於頭部呢? 細思極恐,是不是複雜度就降為o(1)啦?又由於鍊錶是動態的,不會造成空間的浪費,所以當且僅當頭部操作下,優勢是很明顯的!

資料結構 鍊錶4 企業鍊錶

linklist.h ifndef linklist h define linklist h include include 鍊錶結點 typedef struct linknode linknode 鍊錶 typedef struct linklistlinklist 比較函式指標 typedef...

資料結構鍊錶之迴圈鍊錶 4

迴圈鍊錶定義 迴圈鍊錶的構建 class node def init self,item self.item item self.next none first node aa second node bb third node cc forth node dd fifth node ee firs...

資料結構基礎(4)順序表 鍊錶 棧

順序表雖然是一種很有用的儲存結構,但是也具有以下侷限性 1.若要為順序表擴充儲存空間,則需要重新建立乙個位址連續的更大的儲存空間,並把原有的資料元素都複製到新的儲存空間中。2.因為順序儲存要求邏輯上相鄰的資料元素,在物理儲存位置上也相鄰,這就意味著增加刪除元素會引起平均約一半的資料元素移動。所以順序...