c++写一段 链表的插入程序 说明 第一个参数链表指针,有一个空白链表的指针 第二个参数,插入链表的位置,整形 第三个参数,插入链表的值。
时间: 2023-04-12 17:00:53 浏览: 121
以下是链表的插入程序:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node* next;
} Node;
void insert(Node** head, int pos, int val) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = val;
newNode->next = NULL;
if (*head == NULL) {
*head = newNode;
return;
}
if (pos == 0) {
newNode->next = *head;
*head = newNode;
return;
}
Node* curr = *head;
int i = 0;
while (i < pos - 1 && curr->next != NULL) {
curr = curr->next;
i++;
}
newNode->next = curr->next;
curr->next = newNode;
}
int main() {
Node* head = NULL;
insert(&head, 0, 1);
insert(&head, 1, 3);
insert(&head, 1, 2);
Node* curr = head;
while (curr != NULL) {
printf("%d ", curr->data);
curr = curr->next;
}
return 0;
}
```
这段程序可以在链表的指定位置插入一个新节点,节点的值为给定的参数。如果链表为空,则新节点成为链表的头节点。如果插入位置为0,则新节点成为链表的新头节点。否则,程序会遍历链表,找到插入位置的前一个节点,然后将新节点插入到该节点之后。
阅读全文