创建一个n个接点的双项链表
时间: 2024-09-13 22:06:28 浏览: 26
一个合格电子工程师需要掌握的技能.pdf
创建一个n个节点的双链表通常需要以下步骤:
1. 定义节点结构:首先,我们需要定义一个节点类,它包含两个属性,一个是存储数据的变量(例如`data`),另一个是指向下一个节点的指针(对于单链表通常是`next`),以及一个指向前一个节点的指针(对于双链表是`prev`)。
```python
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
self.prev = None
```
2. 初始化头结点:创建一个特殊的节点作为链表的起点,我们称其为头结点(head)。这个节点的数据可以设置为None,并且它的`next`和`prev`都设为None。
```python
def create_doubly_linked_list(n):
if n <= 0:
return None
head = Node()
current = head
```
3. 添加节点:接下来,遍历从2到n,每次添加一个新的节点并连接到链表中。新节点的`prev`指向当前节点,当前节点的`next`指向新节点,同时更新当前节点为新节点。
```python
for i in range(1, n):
new_node = Node(i)
current.next = new_node
new_node.prev = current
current = new_node
```
4. 结束链表:当所有节点添加完毕后,链表的最后一个节点将是`current`。由于双链表,最后一个节点的`prev`应指向头结点,而头结点的`next`也应指向最后一个节点。
```python
if n > 1: # 如果不是只有一个节点,则调整最后两节点的链接
current.next = head
head.prev = current
```
5. 返回头结点:最后返回头结点`head`,这就是创建了一个有n个节点的双链表。
完整代码示例:
```python
def create_doubly_linked_list(n):
if n <= 0:
return None
head = Node()
current = head
for i in range(1, n):
new_node = Node(i)
current.next = new_node
new_node.prev = current
current = new_node
if n > 1:
current.next = head
head.prev = current
return head
# 使用示例:
n = 5
doubly_linked_list = create_doubly_linked_list(n)
```
阅读全文