已知顺序存储线性表的插入、删操作代码,请构造一个线性表:(1)实现其倒置操作,将结果输出显示;(2)删除其中的一个或多个元素,并将结果输出显示。 2、构建链式存储线性表,实现插入、打印、删除等功能。
时间: 2024-09-12 18:01:48 浏览: 42
C++实现顺序表的常用操作(插入删出查找输出)
5星 · 资源好评率100%
对于顺序存储线性表(数组),我们可以使用双指针法来实现倒置操作:
```python
# 假设我们有一个简单的顺序表 List
List = [1, 2, 3, 4, 5]
def reverse_list(lst):
left, right = 0, len(lst) - 1
while left < right:
lst[left], lst[right] = lst[right], lst[left]
left += 1
right -= 1
return lst
reversed_lst = reverse_list(List)
print("倒置后的线性表:", reversed_lst)
# 删除元素
def remove_element(lst, element):
for i in range(len(lst)):
if lst[i] == element:
del lst[i]
print("删除指定元素后的线性表:", lst)
# 删除一个元素,例如数字3
remove_element(reversed_lst, 3)
```
对于链式存储线性表(单链表),我们可以定义节点和链表类来实现:
```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:
current = self.head
while current.next:
current = current.next
current.next = new_node
# 打印链表
def print_list(self):
elements = []
current = self.head
while current:
elements.append(current.data)
current = current.next
print("链表:", elements)
# 删除节点
def delete(self, target):
if not self.head:
return
if self.head.data == target:
self.head = self.head.next
return
current = self.head
while current.next and current.next.data != target:
current = current.next
if current.next:
current.next = current.next.next
# 创建链表并插入元素
linked_list = LinkedList()
linked_list.insert(1)
linked_list.insert(2)
linked_list.insert(3)
# 打印链表
linked_list.print_list()
# 删除指定元素,例如数字2
linked_list.delete(2)
# 再次打印链表
linked_list.print_list()
```
阅读全文