数据结构单链表基本操作C语言
时间: 2024-11-22 18:47:22 浏览: 29
数据结构中的单链表是一种线性的数据结构,每个节点包含两个部分:数据域和指针域。在C语言中,我们可以这样实现和操作单链表:
1. **创建链表**:
- 定义链表节点结构体 `struct Node` 包含整型数据 `data` 和指向下一个节点的指针 `next`。
```c
struct Node {
int data;
struct Node* next;
};
```
2. **初始化链表**:
- 初始化一个空链表可以设置头指针为 `NULL`。
```c
struct Node* head = NULL;
```
3. **插入节点**:
- 可以通过节点的指针逐个添加新节点,如在链表头部、尾部或指定位置插入。
```c
void insertAtStart(struct Node** head, int value) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = value;
newNode->next = *head;
*head = newNode;
}
```
4. **删除节点**:
- 删除指定节点需要考虑特殊情况,如删除头节点、普通节点和查找特定值后删除。
```c
void deleteNode(struct Node** head, int value) {
struct Node* temp = *head, *prev = NULL;
if (temp != NULL && temp->data == value) {
*head = temp->next;
free(temp);
return;
}
while (temp != NULL && temp->data != value) {
prev = temp;
temp = temp->next;
}
if (temp == NULL) return; // 没找到要删除的节点
prev->next = temp->next;
free(temp);
}
```
5. **遍历链表**:
- 使用循环结构访问每个节点的数据。
```c
void printList(struct Node* head) {
while (head != NULL) {
printf("%d ", head->data);
head = head->next;
}
printf("\n");
}
```
阅读全文