单链表是一种常见的数据结构,它是由一系列节点组成的,每个节点都包含一个数据元素和一个指向下一个节点的引用指针。
下面是单链表的实现示例(使用Python语言):
# 创建链表节点类
class Node:
def __init__(self, data):
self.data = data
self.next = None
# 创建链表类
class LinkedList:
def __init__(self):
self.head = None
# 在链表末尾添加节点
def append(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
else:
current_node = self.head
while current_node.next:
current_node = current_node.next
current_node.next = new_node
# 在链表头部插入节点
def prepend(self, data):
new_node = Node(data)
new_node.next = self.head
self.head = new_node
# 在链表中指定位置插入节点
def insert(self, data, position):
new_node = Node(data)
if position == 0:
new_node.next = self.head
self.head = new_node
else:
current_node = self.head
current_position = 0
while current_position < position - 1:
current_node = current_node.next
current_position += 1
if current_node is None:
break
if current_node is None:
print("Position out of range")
else:
new_node.next = current_node.next
current_node.next = new_node
# 删除链表中指定位置的节点
def delete(self, position):
if self.head is None:
print("Empty list")
elif position == 0:
self.head = self.head.next
else:
current_node = self.head
current_position = 0
while current_position < position - 1:
current_node = current_node.next
current_position += 1
if current_node is None:
break
if current_node is None or current_node.next is None:
print("Position out of range")
else:
current_node.next = current_node.next.next
# 打印链表中的所有元素
def print_list(self):
current_node = self.head
while current_node:
print(current_node.data, end=" ")
current_node = current_node.next
print()
# 测试代码
linked_list = LinkedList()
linked_list.append(1)
linked_list.append(2)
linked_list.append(3)
linked_list.prepend(0)
linked_list.insert(4, 2)
linked_list.print_list() # 输出:0 1 4 2 3
linked_list.delete(3)
linked_list.print_list() # 输出:0 1 4 3
上述代码实现了一个简单的单链表,包含了链表的常用操作,包括在链表末尾添加节点、在链表头部插入节点、在链表中指定位置插入节点、删除链表中指定位置的节点和打印链表中的所有元素等。