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 單鏈表在增加和刪除上要比陣列結構更加快捷。原因 因為順序表在記憶體中是相連的,所以刪除乙個節點,在該節點之後的節點都要隨之前移,所以效率不高。而單鏈表使...