王道数据结构课后代码c语言完整版
时间: 2023-10-12 18:03:04 浏览: 88
王道数据结构课后代码的C语言完整版可以有很多种不同的代码示例,如下是一个实现链表的示例:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node* next;
} Node;
Node* createNode(int data) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = data;
newNode->next = NULL;
return newNode;
}
void insert(Node** head, int data) {
if (*head == NULL) {
*head = createNode(data);
return;
}
Node* curr = *head;
while (curr->next != NULL) {
curr = curr->next;
}
curr->next = createNode(data);
}
void display(Node* head) {
Node* curr = head;
while (curr != NULL) {
printf("%d ", curr->data);
curr = curr->next;
}
printf("\n");
}
void delete(Node** head, int data) {
if (*head == NULL) {
return;
}
Node* curr = *head;
Node* prev = NULL;
// 如果要删除的元素是第一个节点
if (curr->data == data) {
*head = curr->next;
free(curr);
return;
}
// 否则遍历链表找到要删除的元素
while (curr != NULL && curr->data != data) {
prev = curr;
curr = curr->next;
}
// 如果找到了要删除的元素
if (curr != NULL) {
prev->next = curr->next;
free(curr);
}
}
int main() {
Node* head = NULL;
insert(&head, 1);
insert(&head, 2);
insert(&head, 3);
insert(&head, 4);
display(head);
delete(&head, 2);
display(head);
return 0;
}
```
以上代码实现了一个简单的链表数据结构,在main函数中对链表进行了插入和删除操作,并打印出链表中的元素。这只是一个简单的示例,王道数据结构课本中还有很多其他的数据结构和算法代码可以一一学习和实现。