定义
循环单链表与单链表唯一的不同就是其最后一个结点并非None,而是指向第一个结点(如果有头结点,就是指向头结点)
python实现
创建循环单链表
class Node:
def __init__(self,data):
self.data = data
self.next = None
class CircularSingleLinkedList:
def __init__(self):
self.head = Node(None)
'''创建循环单链表'''
def CreateCircularSingleLinkedList(self):
data = input("请输入结点的值(按#结束输入):")
cNode = self.head
while data != "#":
nNode = Node(int(data))
cNode.next = nNode
nNode.next = self.head
cNode = cNode.next
data = input("请输入结点的值(按#结束输入):")
CircularSingleList = CircularSingleLinkedList()
CircularSingleList.CreateCircularSingleLinkedList()
结果:
循环单链表首端插入元素
class Node:
def __init__(self,data):
self.data = data
self.next = None
class CircularSingleLinkedList:
def __init__(self):
self.head = Node(None)
'''创建循环单链表'''
def CreateCircularSingleLinkedList(self):
data = input("请输入结点的值(按#结束输入):")
cNode = self.head
while data != "#":
nNode = Node(int(data))
cNode.next = nNode
nNode.next = self.head
cNode = cNode.next
data = input("请输入结点的值(按#结束输入):")
'''首端插入元素'''
def InsertElementInHead(self):
element = input("请输入要插入的值:")
cNode = self.head
nNode = Node(int(element))
nNode.next = cNode.next
cNode.next = nNode
CircularSingleList = CircularSingleLinkedList()
CircularSingleList.CreateCircularSingleLinkedList()
CircularSingleList.InsertElementInHead()
结果:
循环单链表尾端插入元素
class Node:
def __init__(self,data):
self.data = data
self.next = None
class CircularSingleLinkedList:
def __init__(self):
self.head = Node(None)
'''创建循环单链表'''
def CreateCircularSingleLinkedList(self):
data = input("请输入结点的值(按#结束输入):")
cNode = self.head
while data != "#":
nNode = Node(int(data))
cNode.next = nNode
nNode.next = self.head
cNode = cNode.next
data = input("请输入结点的值(按#结束输入):")
'''尾端插入元素'''
def InsertElementInTail(self):
element =