定义LinkList 类型,实现单链表(带头结点)的基本操作。 相关知识 为了完成本关任务,你需要掌握: 线性表的类型定义 线性表的逻辑结构 线性表的链式存储结构
时间: 2024-09-29 20:16:03 浏览: 50
在计算机科学中,我们可以定义一个名为`LinkedList`的链表数据结构,它是一个单向线性表,每个节点包含数据和指向下一个节点的指针。在带头结点的情况下,我们通常会有两个节点:头结点用于标识链表的起始位置,其他节点则按照顺序连接。
以下是基本的`LinkedList`类定义以及几个常用的操作:
```python
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = Node() # 初始化头结点,data为None
# 插入元素到链表头部
def insert_at_start(self, data):
new_node = Node(data)
new_node.next = self.head.next
self.head.next = new_node
# 插入元素到链表尾部
def append(self, data):
new_node = Node(data)
if not self.head.next: # 如果链表为空,则插入到头
self.head.next = new_node
else:
current = self.head.next
while current.next:
current = current.next
current.next = new_node
# 删除指定值的节点(如果存在)
def delete(self, key):
current = self.head
if current.data == key:
self.head = current.next
return
prev = None
while current.next and current.data != key:
prev = current
current = current.next
if current.data == key:
prev.next = current.next
# 遍历并打印链表
def traverse(self):
current = self.head.next
while current:
print(current.data, end=" -> ")
current = current.next
print("None")
# 示例
my_list = LinkedList()
my_list.insert_at_start(5)
my_list.append(3)
my_list.traverse() # 输出: 5 -> 3 -> None
```
阅读全文