链表数据结构

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



 

posted @ 2020-03-08 10:02  The-Chosen-One  阅读(510)  评论(0编辑  收藏  举报