python中有序链表
时间: 2023-06-14 19:08:37 浏览: 213
Python中没有内置的有序链表类型,但是可以通过自定义类来实现。下面是一个简单的示例:
```python
class Node:
def __init__(self, value=None, next=None):
self.value = value
self.next = next
class SortedLinkedList:
def __init__(self):
self.head = None
def insert(self, value):
new_node = Node(value)
if not self.head:
# 如果链表为空,直接将新节点设为头结点
self.head = new_node
elif value <= self.head.value:
# 如果新节点的值小于等于头结点的值,将新节点设为头结点
new_node.next = self.head
self.head = new_node
else:
# 在链表中查找插入位置
curr_node = self.head
while curr_node.next and value > curr_node.next.value:
curr_node = curr_node.next
# 将新节点插入到链表中
new_node.next = curr_node.next
curr_node.next = new_node
def __str__(self):
values = []
curr_node = self.head
while curr_node:
values.append(curr_node.value)
curr_node = curr_node.next
return "->".join(map(str, values))
```
这个类实现了一个有序链表,可以通过 `insert` 方法将元素插入到合适的位置,使链表仍然保持有序。可以通过 `str` 方法打印链表的所有元素。例如:
```python
>>> linked_list = SortedLinkedList()
>>> linked_list.insert(3)
>>> linked_list.insert(1)
>>> linked_list.insert(2)
>>> print(linked_list)
1->2->3
```
阅读全文