定义单链表结点类Node及其必要的方法,定义单链表类List(带附设头结点)及其构造方法和插入方法insert,insert(i,e)的功能为在第i个结点之前插入新结点(设附设头结点序号为0),新结点数据域为e,如果i为合法位置则返回true,否则返回false。
时间: 2024-06-09 08:07:03 浏览: 6
以下是单链表结点类Node及其必要的方法的代码实现:
```python
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
def __str__(self):
return str(self.data)
```
以下是单链表类List(带附设头结点)及其构造方法和插入方法insert的代码实现:
```python
class List:
def __init__(self):
self.head = Node(None)
self.length = 0
def insert(self, i, e):
if i < 0 or i > self.length:
return False
p = self.head
j = 0
while j < i:
p = p.next
j += 1
new_node = Node(e)
new_node.next = p.next
p.next = new_node
self.length += 1
return True
```
这里使用了带附设头结点的单链表,即链表第一个结点为头结点,它的数据域为None,不存储任何数据,只是作为一个哨兵结点,方便对链表的操作。insert方法中,先判断i是否为合法位置,然后从头结点开始,找到第i-1个结点p,创建一个新结点new_node,将new_node插入到p和p.next之间,最后更新链表长度length并返回True。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)