编写3个函数,分别实现单链表(带头结点)的查询、插入、删除。 函数接口定义:
时间: 2024-02-25 17:55:10 浏览: 84
以下是基本的单链表(带头结点)结构体定义:
```c
typedef struct Node{
int data;
struct Node* next;
} Node, *LinkedList;
```
其中,`data`表示节点存储的数据,`next`表示该节点的后继节点指针。`LinkedList`是头结点指针。
接下来是3个函数的实现:
1. 查询函数:
```c
Node* find(LinkedList list, int x) {
Node* p = list->next; // 指向第一个节点
while(p != NULL && p->data != x) {
p = p->next;
}
return p;
}
```
查询函数的功能是在链表中查找值为`x`的节点,若找到则返回该节点的指针,否则返回`NULL`。
2. 插入函数:
```c
bool insert(LinkedList list, int pos, int x) {
Node* p = list;
for(int i = 0; i < pos - 1 && p != NULL; i++) {
p = p->next;
}
if(p == NULL) {
return false; // 插入位置无效
}
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = x;
newNode->next = p->next;
p->next = newNode;
return true;
}
```
插入函数的功能是在链表的第`pos`个位置插入值为`x`的节点,若插入成功则返回`true`,否则返回`false`。
3. 删除函数:
```c
bool del(LinkedList list, int x) {
Node* p = list;
while(p->next != NULL && p->next->data != x) {
p = p->next;
}
if(p->next == NULL) {
return false; // 要删除的节点不存在
}
Node* q = p->next;
p->next = q->next;
free(q); // 释放空间
return true;
}
```
删除函数的功能是删除链表中值为`x`的节点,若删除成功则返回`true`,否则返回`false`。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)