链表数据结构
python实现链表的代码如下所示:
#链表的创建和连接函数
#链表是由数据域item和next连接关系
class Node:
def __init__(self,item):
self.item=item
self.next=None
a=Node(1)
b=Node(2)
c=Node(3)
a.next=b
b.next=c
print(a.next.item)
#头插法创建链表(倒序)
def creat_linklist_head(li):
head=Node(li[0])
for element in li[1:]:
node=Node(element)
node.next=head
head=node
return head
#尾插法创建链表(顺序)
def creat_linklist_tail(li):
head=Node(li[0])
tail=head
for element in li[1:]:
node=Node(element)
tail.next=node
tail=node
return head
#打印链表的各个元素的函数
def print_linklist(lk):
while lk:
print(lk.item,end=",")
lk=lk.next
lk=creat_linklist_head([1,2,3])
print_linklist(lk)
lk=creat_linklist_tail([1,2,3])
print_linklist(lk)
#链表的插入与删除,时间复杂度为O(1)
p=Node(100)
curnode=Node(3)
curnode.next=Node(4)
#链表的插入与删除
#插入
p.next=curnode.next.next
curnode.next=p
#删除
p=curnode.next
curnode.next=curnode.next.next
del p
#双链表:节点与节点之间双向指向,next和periro