定义
一个典型的单链表:
其中头结点数据域默认为空,也可用于存放单链表长度之类的数据;指针域用来存放第一个结点的地址。最后一个结点的指针域默认为空。
python实现
创建单链表以及在尾端插入一个结点
class Node:
'''初始化一个节点'''
def __init__(self,data):
self.data = data
self.next = None
class SingleLinkedList:
'''初始化头节点'''
def __init__(self):
self.head = Node(None)
'''创建单链表'''
def CreateSingleLinkedList(self):
cNode = self.head
Element= input("请输入数据按回车键确认,按#结束:")
while Element != '#':
nNode = Node(int(Element))
cNode.next = nNode
cNode = cNode.next
Element= input("请输入数据按回车键确认,按#结束:")
'''在单链表尾端插入一个数据'''
def InsertElementInTail(self):
cNode = self.head
Element= input("请输入尾端要插入的数据:")
nNode = Node(int(Element))
while cNode.next != None:
cNode = cNode.next
cNode.next = nNode
linkedlist = SingleLinkedList()
linkedlist.CreateSingleLinkedList()
linkedlist.InsertElementInTail()
结果:
在表中首端插入一个结点
class Node:
'''初始化一个节点'''
def __init__(self,data):
self.data = data
self.next = None
class SingleLinkedList:
'''初始化头节点'''
def __init__(self):
self.head = Node(None)
'''创建单链表'''
def CreateSingleLinkedList(self):
cNode = self.head
Element= input("请输入数据按回车键确认,按#结束:")
while Element != '#':
nNode = Node(int(Element))
cNode.next = nNode
cNode = cNode.next
Element= input("请输入数据按回车键确认,按#结束:")
'''在表中首端插入某一结点'''
def InsertElementHead(self):
cNode = self.head
Element= input("请输入首端要插入的数据:")
nNode = Node(int(Element))
cNode.next = nNode
nNode.next = cNode.next
linkedlist = SingleLinkedList()
linkedlist.CreateSingleLinkedList()
linkedlist.InsertElementHead()
结果:
获取单链表长度
class Node:
'''初始化一个节点'''
def __init__(self,data):
self.data = data
self.next = None
class SingleLinkedList:
'''初始化头节点'''
def __init__(self):
self.head = Node(None)
'''创建单链表'''
def CreateSingleLinkedList(self):
cNode = self.head
Element= input(