参考教材抽象数据类型 List,编程实现线性表的顺序存储及其 基本操作,在 main()函数中测试各基本操作的正确性。
时间: 2024-09-28 14:17:32 浏览: 49
[C语言数据结构]线性表-顺序表介绍及其基础操作函数实现
在编程中,特别是使用像Python这样的语言,我们可以创建一个基于列表(List)的抽象数据类型来模拟线性表的顺序存储结构。线性表是一种基本的数据结构,它将元素按照一定的顺序排列,支持插入、删除和查找等基本操作。
首先,我们可以定义一个`Node`类,表示链表中的单个节点,包含值和指向下一个节点的引用:
```python
class Node:
def __init__(self, value=None):
self.value = value
self.next = None
```
接着,我们创建一个`LinearList`类,它维护一个底层的`list`作为数据结构,并实现基本操作:
```python
class LinearList:
def __init__(self):
self.head = None
# 插入元素到末尾
def append(self, value):
new_node = Node(value)
if not self.head:
self.head = new_node
return
current = self.head
while current.next:
current = current.next
current.next = new_node
# 删除指定位置的元素
def remove_at(self, index):
if index < 0 or index >= len(self):
return
if index == 0:
self.head = self.head.next
return
current = self.head
for _ in range(index - 1):
current = current.next
current.next = current.next.next
# 查找元素
def find(self, value):
current = self.head
while current:
if current.value == value:
return True
current = current.next
return False
# 返回线性表长度
def size(self):
count = 0
current = self.head
while current:
count += 1
current = current.next
return count
# 测试main函数
def main():
ll = LinearList()
ll.append(1)
ll.append(2)
ll.append(3)
print("Initial list:", [node.value for node in ll]) # 输出 [1, 2, 3]
ll.remove_at(1) # 删除索引为1的元素
print("After removing at index 1:", [node.value for node in ll]) # 输出 [1, 3]
print("Find 2:", ll.find(2)) # 输出 True (因为还存在2)
print("Find 4:", ll.find(4)) # 输出 False (因为不存在4)
print("Length:", ll.size()) # 输出 2
if __name__ == "__main__":
main()
```
在这个例子中,我们在`main`函数中创建了一个线性表实例,对它的基本操作进行了测试。运行这个程序会验证插入、删除、查找以及获取长度等操作是否正确。
阅读全文