c语言1. 初始化链式存储线性表 2. 插入样本数据 3.遍历并打印所有数据 4. 逐个删除并打印、直到表空
时间: 2024-09-25 11:18:11 浏览: 35
在C语言中,我们可以使用链表结构来初始化线性表,并进行插入、遍历和删除操作:
1. **初始化链式存储线性表**:
首先,我们需要定义链表节点结构,包括数据域和指向下一个节点的指针:
```c
typedef struct Node {
int data; // 存储的数据
struct Node* next; // 指向下一个节点的指针
} Node;
```
创建一个链表通常会有一个头结点,初始化为空:
```c
Node* head = NULL;
```
2. **插入样本数据**:
对于插入操作,可以定义一个函数接收数据和头指针作为参数:
```c
void insert(int value) {
Node* newNode = (Node*)malloc(sizeof(Node)); // 分配内存
newNode->data = value;
newNode->next = head; // 将新节点设为头节点
head = newNode; // 更新头指针
}
```
你可以通过调用多次`insert()`函数来添加样本数据。
3. **遍历并打印所有数据**:
使用递归或循环结构来遍历链表并打印元素:
```c
void printList(Node* node) {
if (node != NULL) { // 如果还有节点
printf("%d ", node->data);
printList(node->next); // 继续遍历
}
}
// 调用方法:
printList(head);
```
4. **逐个删除并打印,直到表空**:
删除节点需要找到前一个节点,然后更新其指针指向下一个节点:
```c
void deleteNode(Node** head, int value) {
Node* temp = *head, *prev;
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); // 释放当前节点的内存
}
// 调用删除和打印方法:
deleteNode(&head, sample_value); // 删除指定值
printList(head); // 打印剩余数据
```
记得替换`sample_value`为你想要删除的值。完成以上步骤后,链表就会按照需求进行增删查改操作了。
阅读全文