python链表(数据结构)
在已有的单链表中,删除所有值为x的元素,代码如下:
class Node(object):
# 初始化结点
def __init__(self,num):
self.num=num
self.next=None
class SingleLinkedList(object):
# 初始化头结点
def __init__(self):
self.head=Node('')
# 创建单链表
def CreatSingleLinkedList(self):
print('请输入数据后按回车键确认,若想结束请输入"#"。')
cNode=self.head
element=input('请输入一个数字:')
while element!='#':
num=Node(int(element))
cNode.next=num
cNode=cNode.next
element = input('请输入一个数字:')
# 打印链表自身元素
def PrintList(self):
cNode=self.head.next
while cNode!=None:
print(cNode.num,end=' ')
cNode=cNode.next
print()
# 删除值为x的链表节点元素
def delelement(self):
delement = int(input('请输入待删除节点的值:'))
cNode = self.head
nNode = cNode.next
while nNode!=None:
if nNode.num == delement:
cNode.next=nNode.next
nNode = nNode.next
else:
cNode = nNode
nNode = nNode.next
#创建一个连表对象
lianbiao=SingleLinkedList()
lianbiao.CreatSingleLinkedList()
#打印当前链表所有值
print('打印当前链表所有值:')
lianbiao.PrintList()
# 打印删除后链表所有值
lianbiao.delelement()
print('打印删除后链表所有值:')
lianbiao.PrintList()