74 資料結構 鍊錶LinkedList

2021-08-22 00:19:48 字數 2785 閱讀 8028

特點

鍊錶相鄰元素之間通過指標連線,最後乙個元素的後繼指標值為null;

長度不固定,可以增加或縮小,不需要像動態陣列似的動態擴容;

沒有記憶體空間的浪費,但鍊錶的指標需要一些額外的記憶體開銷。

由於沒有索引,在儲存和檢索資料時需要從頭遍歷到相應位置再執行操作,時間複雜度為o(n)級別。

節點

public

class

linkedlist

public

node

(e e)

public

node()

}private node dummyhead;

//虛擬頭節點

private

int size;

//記錄鍊錶大小的變數

public

linkedlist()

}

/**

* 在鍊錶的index位置新增新的元素e

*/public

void

add(

int index, e e)

node prev = dummyhead;

for(

int i =

0; i < index; i++

)// node node = new node(e);//要新增的節點

// node.next = prev.next;//新增的節點的next指向prev節點的next prev --> prev.next

// prev.next = node;//prev節點的next指向要新增的節點 |--> node --↑

prev.next =

newnode

(e, prev.next)

; size++;}

public

void

addfirst

(e e)

public

void

addlast

(e e)

public e remove

(int index)

node del = prev.next;

prev.next = del.next;

del.next = null;

size--

;return del.e;

}public e removefirst()

public e removelast()

public

void

set(

int index, e e)

cur.e = e;

}

public e get

(int index)

node cur = dummyhead.next;

for(

int i =

0; i < index; i++

)return cur.e;

}public e getfirst()

public e getlast()

使用鍊錶實現棧

public

class

linkedliststack

implements

stack

@override

public

intgetsize()

@override

public

boolean

isempty()

@override

public

void

push

(e e)

@override

public e pop()

@override

public e peek()

}

使用鍊錶實現佇列

public

class

linkedlistqueue

implements

queue

@override

public

intgetsize()

@override

public

boolean

isempty()

@override

public

void

enqueue

(e e)

else

size++;}

@override

public e dequeue()

node front = head;

head = head.next;

front.next = null;

if(head == null)

size--

;return front.e;

}@override

public e getfront()

return head.e;

}}

資料結構 鍊錶

鍊錶 what 就是一張鏈式儲存的表,是一種資料結構,是基礎,所以還是不要想有什麼用。具體呢?在c中就用結構體實現物件描述,然後通過函式來實現各個基本操作 c 則用類來表述,c中的結構體就可以看成c 中的類,然後通過類封裝各個操作步驟。這些操作實現後就需要 來測試,號稱demo,就是main函式裡面...

資料結構 鍊錶

鍊錶中的資料是以節點來表示的,每個結點的構成 元素 資料元素的映象 指標 指示後繼元素儲存位置 元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料。鍊錶的結點結構 data next data域 存放結點值的資料域 next域 存放結點的直接後繼的位址 位置 的指標域 鏈域 以 結點的序列 ...

資料結構 鍊錶

一般的建立線性鍊錶有兩種 1.正序法 需要三個指標,head作為頭指標,pre作為前乙個指標,cur作為當前指標用來建立空間 2.倒序法,利用指標的插入,只需要兩個指標,不斷的往頭指標後插入新空間,不過插入的越早,離頭指標越遠,也就越後面輸出 1.線性鍊錶的建立及查詢刪除 include inclu...