程序功能:建立一个单向链表,头指针是list,链表中每个结点包含姓名、基本工资信息,编写del_list函数删除链表中等于某给定基本工资的所有结点。要求在主函数中先建立单向链表(注:当输入基本工资为0时,表示输入结束。),再输入一个给定基本工资,然后调用del_list函数删除链表中等于给定基本工资的所有结点,最后输出删除后的链表信息。
时间: 2023-05-28 20:04:10 浏览: 118
以下是Python代码实现:
```python
class Employee:
def __init__(self, name, salary):
self.name = name
self.salary = salary
self.next = None
def create_list():
head = None
while True:
name = input("请输入员工姓名:")
if name == "":
break
salary = float(input("请输入员工基本工资:"))
if salary == 0:
break
emp = Employee(name, salary)
if head == None:
head = emp
else:
current = head
while current.next != None:
current = current.next
current.next = emp
return head
def del_list(head, target_salary):
while head != None and head.salary == target_salary:
head = head.next
if head == None:
return None
current = head
while current.next != None:
if current.next.salary == target_salary:
current.next = current.next.next
else:
current = current.next
return head
def print_list(head):
current = head
while current != None:
print(current.name, current.salary)
current = current.next
head = create_list()
target_salary = float(input("请输入要删除的基本工资:"))
head = del_list(head, target_salary)
print("删除后的链表信息:")
print_list(head)
```
程序流程:
1. 定义Employee类,包含员工姓名、基本工资和下一个结点的指针。
2. 定义create_list函数,用于创建链表,通过输入员工姓名和基本工资来构造Employee对象,并将其添加到链表中。当输入姓名为空字符串或基本工资为0时,停止输入并返回头结点。
3. 定义del_list函数,用于删除链表中等于给定基本工资的所有结点。首先判断头结点是否等于给定基本工资,如果是,则将头结点指向下一个结点;然后遍历链表中的每个结点,如果其下一个结点的基本工资等于给定基本工资,则将其下一个结点删除;最后返回头结点。
4. 定义print_list函数,用于输出链表中每个结点的姓名和基本工资。
5. 在主函数中调用create_list函数创建链表,然后输入要删除的基本工资,并调用del_list函数删除链表中等于给定基本工资的所有结点,最后调用print_list函数输出删除后的链表信息。
阅读全文