写一段c++代码实现链表的1)初始化;2)在start指针后面插入新的node;以及3)在链表的最后面插入新的node
时间: 2023-12-10 22:40:43 浏览: 56
以下是C++代码实现链表的初始化、在start指针后面插入新的node、以及在链表的最后面插入新的node。
```c++
#include <iostream>
using namespace std;
struct Node {
int val;
Node* next;
};
Node* initList() {
Node* head = new Node;
head->val = 0;
head->next = nullptr;
return head;
}
void insertAfter(Node* start, int val) {
Node* newNode = new Node;
newNode->val = val;
newNode->next = start->next;
start->next = newNode;
}
void insertEnd(Node* head, int val) {
Node* p = head;
while (p->next != nullptr) {
p = p->next;
}
Node* newNode = new Node;
newNode->val = val;
newNode->next = nullptr;
p->next = newNode;
}
int main() {
Node* head = initList();
insertAfter(head, 1);
insertAfter(head, 2);
insertEnd(head, 3);
Node* p = head->next;
while (p != nullptr) {
cout << p->val << " ";
p = p->next;
}
cout << endl;
return 0;
}
```
在这个代码中,我们首先定义了一个 `struct Node` 来表示链表中的节点。`val` 表示节点中存储的值,`next` 表示下一个节点的地址。
然后我们定义了三个函数:`initList` 用于初始化链表,`insertAfter` 在指定节点后面插入新的节点,`insertEnd` 在链表的最后面插入新的节点。
在 `main` 函数中,我们先调用 `initList` 函数初始化链表,然后调用 `insertAfter` 函数在链表的头部插入两个节点,并调用 `insertEnd` 函数在链表的最后面插入一个节点。
最后,我们遍历链表并输出每个节点的值。
阅读全文