在上题基础上,新增加一个职工的数据,按职工号的顺序插入链表,新插入的职工号为106。写一函数insert来插入新结点。
时间: 2023-06-09 07:07:16 浏览: 60
好的,我来回答你的问题。针对你的要求,可以按照以下方式来实现insert函数:
```python
class Employee:
def __init__(self, id, name, salary):
self.id = id
self.name = name
self.salary = salary
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def insert(self, new_employee):
if self.head is None:
self.head = new_employee
elif new_employee.id < self.head.id:
new_employee.next = self.head
self.head = new_employee
else:
current = self.head
while current.next is not None and current.next.id < new_employee.id:
current = current.next
new_employee.next = current.next
current.next = new_employee
```
其中,Employee是一个职工类,包含职工号、姓名和工资等属性。LinkedList是一个链表类,包含链表的头结点head和插入新结点的insert函数。
在insert函数中,首先判断链表是否为空,如果是,直接将新结点设置为头结点;否则,通过循环遍历链表找到正确的插入位置。这里是按照职工号的顺序插入链表,当新结点的职工号小于头结点的职工号时,将新结点插入到头部;否则,依次遍历链表找到正确的插入位置,将新结点插入到该位置。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)