链表的插入删除操作用c++怎么写
时间: 2023-11-06 11:07:12 浏览: 41
链表的插入和删除操作在 C 语言中通常需要定义链表的结构体,并通过指针操作来实现。
以下是链表的结构体定义:
```c
struct Node {
int data;
struct Node *next;
};
```
链表的插入操作:
```c
void insert(struct Node **head, int data, int position) {
int k = 1;
struct Node *p, *q, *newNode;
newNode = (struct Node *)malloc(sizeof(struct Node));
if (!newNode) {
printf("内存分配失败");
return;
}
newNode->data = data;
p = *head;
if (position == 1) {
newNode->next = p;
*head = newNode;
} else {
while ((p != NULL) && (k < position)) {
k++;
q = p;
p = p->next;
}
q->next = newNode;
newNode->next = p;
}
}
```
链表的删除操作:
```c
void delete(struct Node **head, int position) {
int k = 1;
struct Node *p, *q;
p = *head;
if (position == 1) {
*head = (*head)->next;
free(p);
return;
} else {
while ((p != NULL) && (k < position)) {
k++;
q = p;
p = p->next;
}
if (p == NULL)
printf("位置不存在");
else {
q->next = p->next;
free(p);
}
}
}
```
请注意,上述代码仅供参考,没有对错误情况进行充分的处理。