双向链表插入元素的程序
时间: 2024-02-17 07:59:52 浏览: 59
下面是一个简单的双向链表插入元素的程序示例:
```c++
#include <iostream>
using namespace std;
struct Node {
int val;
Node* prev;
Node* next;
};
void insert(Node** head, int val) {
// 创建一个新的节点
Node* newNode = new Node();
newNode->val = val;
newNode->prev = NULL;
newNode->next = NULL;
// 如果链表为空,将新节点设为头节点
if (*head == NULL) {
*head = newNode;
return;
}
// 找到链表的最后一个节点
Node* lastNode = *head;
while (lastNode->next != NULL) {
lastNode = lastNode->next;
}
// 将新节点插入到链表的末尾
lastNode->next = newNode;
newNode->prev = lastNode;
}
int main() {
Node* head = NULL;
// 插入一些元素
insert(&head, 1);
insert(&head, 2);
insert(&head, 3);
// 遍历链表并输出元素
Node* currNode = head;
while (currNode != NULL) {
cout << currNode->val << " ";
currNode = currNode->next;
}
cout << endl;
return 0;
}
```
这个程序会创建一个双向链表并插入一些元素,然后遍历链表并输出元素。在插入新节点时,程序会找到链表的最后一个节点,并将新节点插入到链表的末尾。注意,在链表为空的情况下,插入的节点会作为头节点。
阅读全文