数据结构单链表c++
时间: 2023-09-05 13:07:56 浏览: 201
单链表是一种常见的数据结构,用于存储一系列的节点连接起来的数据。
在C语言中,我们可以使用结构体来定义一个节点,包含一个数据域和一个指向下一个节点的指针域。代码如下:
```c
struct Node {
int data;
struct Node* next;
};
```
然后,我们可以定义一个指向链表头部的指针,表示整个链表的起始位置。初始化链表时,这个指针可以指向NULL。
```c
struct Node* head = NULL;
```
接下来,我们可以实现一些基本的操作,例如插入节点、删除节点、遍历链表等。
插入节点的过程包括创建一个新节点,并将其插入到链表中适当的位置。
```c
void insertNode(int value) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = value;
newNode->next = NULL;
if (head == NULL) {
head = newNode;
}
else {
struct Node* curr = head;
while (curr->next != NULL) {
curr = curr->next;
}
curr->next = newNode;
}
}
```
删除节点的过程需要找到目标节点,并调整前后节点的指针。
```c
void deleteNode(int value) {
if (head == NULL) {
return;
}
if (head->data == value) {
struct Node* temp = head;
head = head->next;
free(temp);
return;
}
struct Node* prev = head;
struct Node* curr = head->next;
while (curr != NULL && curr->data != value) {
prev = curr;
curr = curr->next;
}
if (curr != NULL) {
prev->next = curr->next;
free(curr);
}
}
```
遍历链表的过程是从头节点开始,依次打印每个节点的数据。
```c
void printList() {
struct Node* curr = head;
while (curr != NULL) {
printf("%d ", curr->data);
curr = curr->next;
}
printf("\n");
}
```
这是一个简单的单链表的实现示例,你可以根据需要进一步扩展和优化。
阅读全文