鍊錶的實現

2021-10-07 03:10:01 字數 2014 閱讀 1605

package main

import

"fmt"

type node struct

next *node

}type linkedlist struct

var linkedlist *linkedlist =

&linkedlist

//初始化鍊錶

func newlinkedlist()

*linkedlist

}/**

新增(在頭部新增)

*/func (link *linkedlist)

add(value inte***ce

)int

node.data = value

//判讀頭結點是否有頭指標位址

if linkedlist.first == nil

node.next = linkedlist.first

linkedlist.first = node

linkedlist.size++

return linkedlist.size

}/**

獲取指定位置的元素

*/func (link *linkedlist)

get(i int

)inte***ce

var node = linkedlist.first

n :=1

for node != nil && n <= i

if node == nil

return node.data

}/**

指定位置插入元素

*/func (link *linkedlist)

insert

(value inte***ce

, i int

)int

var node = linkedlist.first

n :=1

for node != nil && n <= i

if node == nil

insert :

=&node

insert.data = node.data

node.data = value

insert.next = node.next

node.next = insert

linkedlist.size++

return i

}/**

刪除指定位置插入元素

*/func (link *linkedlist)

delete

(i int

)int

var node = linkedlist.first

n :=1

for node != nil && n <= i

if node == nil

fmt.

println

(node)

if node.next != nil

return i

}/**

在鏈尾部新增

*/func (link *linkedlist)

(value inte***ce

)int

node.data = value

linkedlist.first = node

linkedlist.size++

return linkedlist.size

} var node = linkedlist.first

n :=1

for node != nil && n < linkedlist.size

next :

=&node

next.data = value

node.next = next

linkedlist.size++

return linkedlist.size

}func (link *linkedlist)

size()

intfunc main()

鍊錶的實現

鍊錶是一種非常重要的資料結構,比起陣列來雖然操作繁瑣,查詢效率也不如陣列效率高,但在進行插入刪除操作時,鍊錶具有陣列無法比擬的效率,下面的 是鍊錶的實現 include include include define n 100 typedef struct node link link node i...

鍊錶的實現

include using namespace std template class linklist node head public linklist t a,int n 0 利用尾插法來構建線性鍊錶 linklist bool isempty 不為空,則返回0,為空則返回非0 t getnod...

鍊錶的實現

記憶體結構 鍊錶也是資料結構的一種,但是和陣列不一樣,陣列在記憶體中每個節點的位置是相連的。而鍊錶的每個節點在物件中是分散的,依靠引用相連。優點1 單鏈表在增加和刪除上要比陣列結構更加快捷。原因 因為順序表在記憶體中是相連的,所以刪除乙個節點,在該節點之後的節點都要隨之前移,所以效率不高。而單鏈表使...