c++实现insert链表
时间: 2023-11-14 07:05:26 浏览: 108
C++实现链表
在C++中实现链表的插入操作,可以按照以下步骤进行:
1. 定义链表节点类,包括节点的值和指向下一个节点和上一个节点的指针。
2. 定义链表类,包括链表头指针和链表长度等属性,以及插入节点的方法。
3. 在插入节点的方法中,先判断插入位置是否合法,然后创建新节点并赋值,将新节点插入到链表中,并更新链表长度。
下面是一个简单的C++实现链表插入操作的例子:
```
#include <iostream>
using namespace std;
// 定义链表节点类
class ListNode {
public:
int val;
ListNode* prev;
ListNode* next;
ListNode(int x) : val(x), prev(NULL), next(NULL) {}
};
// 定义链表类
class LinkedList {
public:
ListNode* head;
int len;
LinkedList() : head(NULL), len(0) {}
// 插入节点方法
void insert(int pos, int val) {
if (pos < 0 || pos > len) {
cout << "插入位置不合法" << endl;
return;
}
ListNode* newNode = new ListNode(val);
if (pos == 0) {
newNode->next = head;
if (head != NULL) {
head->prev = newNode;
}
head = newNode;
} else {
ListNode* cur = head;
for (int i = 0; i < pos - 1; i++) {
cur = cur->next;
}
newNode->prev = cur;
newNode->next = cur->next;
if (cur->next != NULL) {
cur->next->prev = newNode;
}
cur->next = newNode;
}
len++;
}
};
int main() {
LinkedList list;
list.insert(0, 1);
list.insert(1, 2);
list.insert(1, 3);
return 0;
}
```
阅读全文