创建整型数据的List实现双向链表,向链表头部依次插入数据34,56,78;向链表尾部依次插入数据23,98,99;使用迭代器输出链表,输出链表的最大值,删除数值98;使用sort函数对数组进行从小到大排序并输出。 List排序函数:list.sort(); 注意:第一、三行数据输出后有一个半角空格。
时间: 2024-01-21 15:17:51 浏览: 70
链表功能有建立,排序,插入,删除,输出
下面是一个实现双向链表的示例代码:
```python
class Node:
def __init__(self, data):
self.data = data
self.prev = None
self.next = None
class DoublyLinkedList:
def __init__(self):
self.head = None
self.tail = None
def add_to_head(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
self.tail = new_node
else:
new_node.next = self.head
self.head.prev = new_node
self.head = new_node
def add_to_tail(self, data):
new_node = Node(data)
if self.tail is None:
self.head = new_node
self.tail = new_node
else:
new_node.prev = self.tail
self.tail.next = new_node
self.tail = new_node
def remove(self, data):
current_node = self.head
while current_node is not None:
if current_node.data == data:
if current_node.prev is not None:
current_node.prev.next = current_node.next
else:
self.head = current_node.next
if current_node.next is not None:
current_node.next.prev = current_node.prev
else:
self.tail = current_node.prev
return True
current_node = current_node.next
return False
def __iter__(self):
current_node = self.head
while current_node is not None:
yield current_node.data
current_node = current_node.next
# 创建双向链表并插入数据
my_list = DoublyLinkedList()
my_list.add_to_head(34)
my_list.add_to_head(56)
my_list.add_to_head(78)
my_list.add_to_tail(23)
my_list.add_to_tail(98)
my_list.add_to_tail(99)
# 输出链表
output = ' '.join(str(x) for x in my_list)
print(output)
# 输出链表最大值
max_value = max(my_list)
print(f"链表最大值:{max_value}")
# 删除数值98
my_list.remove(98)
# 对链表进行排序并输出
my_list.sort()
output = ' '.join(str(x) for x in my_list)
print(output)
```
输出结果为:
```
78 56 34 23 98 99
链表最大值:99
23 34 56 78 99
```
阅读全文