给我写一份单链表菜单排序
时间: 2024-09-18 08:05:37 浏览: 36
高级语言程序设计(实训)报告书(学生成绩名次表).doc
单链表是一种线性的数据结构,它包含一系列节点,每个节点包含数据和指向下一个节点的指针。如果你想要对一个单链表进行菜单排序,通常我们会假设这个列表存储的是字符串类型的菜单项。这里是一个简单的Python示例,展示如何使用冒泡排序算法对链表进行排序:
```python
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
# 插入节点到链表的开头
def insert(self, data):
new_node = Node(data)
if not self.head:
self.head = new_node
else:
new_node.next = self.head
self.head = new_node
# 冒泡排序链表
def bubble_sort_list(self):
if not self.head or not self.head.next:
return
end = None
while True:
swapped = False
current = self.head
while current.next and current != end:
if current.data > current.next.data:
current.data, current.next.data = current.next.data, current.data
swapped = True
current = current.next
end = current
if not swapped:
break
# 示例操作
menu_list = LinkedList()
menu_list.insert('牛肉面')
menu_list.insert('糖醋排骨')
menu_list.insert('鱼香茄子')
menu_list.bubble_sort_list()
# 输出排序后的链表(这里仅打印头节点)
current = menu_list.head
while current:
print(current.data)
current = current.next
```
注意,这是个基础示例,并未涉及链表遍历性能优化。实际应用中,如果链表过长,冒泡排序效率可能会比较低。对于大规模数据,更适合选择其他高效的排序算法如快速排序或归并排序。
阅读全文