#-*- coding : utf-8 -*-
"""
create on 2020/8/20 20:17
filename:lianbiao.py
"""
#以单链表为例
#创建链表
#定义节点
class Node:
def __init__(self,data = None, next = None):
self.data = data
self.next = next
#单个创建节点
node1=Node(1)
node2=Node(2)
node3=Node(3)
node1.next=node2
node2.next=node3
print(node1.data)
#循环创建链表
head=None
for count in range(1,6):
head = Node(count, head)
while head != None:
print(head.data)
head = head.next
#遍历链表
probe = head
while probe != None:
probe = probe.next
#查找某个元素
probe = head
item=4
while(probe!=None&item != probe.data):
probe = probe.next
if probe != None:
print("found")
else:
print("not found")
#访问某个元素
index=2
probe=head
while(index > 0):
probe = probe.next
index -= 1
print(probe.data)
#替换某个元素
probe=head
item=3
newitem=30
while(probe!=None&item!=probe.data):
probe=probe.next
if(probe!=None):
probe.data=newitem
else:
print("not found")
#开始处插入
head=Node(newitem,head)
#中间位置插入
if head is None or index <=0:
head =Node(newitem, head)
else:
probe = head
while index > 1 and probe.next != None:
probe = probe.next
index -= 1
probe.next = Node(newitem, probe.next)
#末尾插入
nNode=Node(newitem)
if(head is None):
head=newitem
else:
probe=head
while(probe.next!=None):
probe=probe.next
probe.next=nNode
#开始处删除
head=head.next
#中间删除
if index <= 0 or head.next is None:
head = head.next
else:
probe = head
while index > 1 and probe.next.next != None:
probe = probe.next
index -= 1
probe.next = probe.next.next
#末尾删除
if(head.next is None):
head=None
else:
probe=head
while(probe.next!=None):
probe=probe.next
probe.next=None
数据结构之链表(python实现)
最新推荐文章于 2024-03-25 21:40:00 发布