编程实现一个对单链表进行基本操作的系统,主要包括表的创建,输入,查询,取值,插入,删除,输出等操作
时间: 2024-05-03 18:22:35 浏览: 49
单向链表,包括创建、插入、删除等基本操作
以下是一个简单的单链表操作系统的实现:
```python
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
# 创建链表
def create(self):
n = int(input("请输入链表中节点的个数:"))
if n <= 0:
return
self.head = Node(input("请输入节点1的数据:"))
p = self.head
for i in range(2, n+1):
data = input(f"请输入节点{i}的数据:")
node = Node(data)
p.next = node
p = node
# 查询链表是否为空
def is_empty(self):
return self.head == None
# 查询链表长度
def length(self):
p = self.head
count = 0
while p:
count += 1
p = p.next
return count
# 取出指定位置节点的值
def get(self, index):
if index < 0 or index >= self.length():
return None
p = self.head
for i in range(index):
p = p.next
return p.data
# 插入节点
def insert(self, index, data):
if index < 0 or index > self.length():
return False
node = Node(data)
if index == 0:
node.next = self.head
self.head = node
else:
p = self.head
for i in range(index-1):
p = p.next
node.next = p.next
p.next = node
return True
# 删除节点
def delete(self, index):
if index < 0 or index >= self.length():
return False
if index == 0:
self.head = self.head.next
else:
p = self.head
for i in range(index-1):
p = p.next
p.next = p.next.next
return True
# 输出链表
def print(self):
p = self.head
while p:
print(p.data, end=" ")
p = p.next
print()
# 测试
if __name__ == "__main__":
linked_list = LinkedList()
linked_list.create()
linked_list.print()
print(f"链表长度为{linked_list.length()}")
print(f"第2个节点的值为{linked_list.get(1)}")
linked_list.insert(2, "hello")
linked_list.print()
linked_list.delete(3)
linked_list.print()
```
运行结果:
```
请输入链表中节点的个数:5
请输入节点1的数据:1
请输入节点2的数据:2
请输入节点3的数据:3
请输入节点4的数据:4
请输入节点5的数据:5
1 2 3 4 5
链表长度为5
第2个节点的值为2
1 2 hello 3 4 5
1 2 hello 4 5
```
阅读全文