链表
1.概念
链表是由一系列节点组成的元素集合。每个节点包含两部分,数据域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)
print(a.next.next.item)
2.创建链表
头插法、尾插法
- 头插法(倒序)
- 尾插法(正序)
class Node:
def __init__(self,item):
self.item=item
self.next=None
#头插法
def create_linklist_head(li):
head=Node(li[0])
for element in li[1:]:
node=Node(element)
node.next=head
head=node
return head
#尾插法
def create_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=create_linklist_head([1,2,3])#前插法
print_linklist(lk)
lk=create_linklist_tail([1,2,3,6,8])#后插法
print_linklist(lk)
3.链表的插入和删除
- 插入
- 删除
4.双链表
双链表的每个节点有两个指针: 一个指向后一个节点,另一个指向前一个节点。
- 插入
- 删除