C语言顺序表创建一个源代码,保存八个基本运算,便于后续的调用 创建一个源
时间: 2024-09-20 17:13:17 浏览: 47
535个C语言经典实例源代码
在C语言中,我们可以创建一个顺序表结构体,包含数据元素和指向下一个元素的指针,然后定义函数实现八种基本运算,如插入、删除、查找等。下面是一个简单的顺序表实现示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义顺序表结构体
typedef struct {
int data; // 数据域
struct Node* next; // 指向下一个节点的指针
} Node;
// 创建顺序表的动态节点
Node* createNode(int value) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = value;
newNode->next = NULL;
return newNode;
}
// 插入元素到列表末尾
void insertAtEnd(Node** headRef, int value) {
Node* newNode = createNode(value);
if (*headRef == NULL) {
*headRef = newNode;
} else {
Node* temp = *headRef;
while (temp->next != NULL) {
temp = temp->next;
}
temp->next = newNode;
}
}
// 删除指定值的元素
void deleteElement(Node** headRef, int value) {
if (*headRef == NULL) {
return;
}
if ((*headRef)->data == value) {
Node* temp = *headRef;
*headRef = (*headRef)->next;
free(temp);
return;
}
Node* prev = *headRef;
Node* curr = *headRef->next;
while (curr != NULL && curr->data != value) {
prev = curr;
curr = curr->next;
}
if (curr == NULL) return;
prev->next = curr->next;
free(curr);
}
// 其他基本操作,比如查找、获取长度等,可以参考上述思路,这里仅列出部分
// 查找元素
int searchElement(Node* head, int value) {
Node* temp = head;
while (temp != NULL) {
if (temp->data == value) return 1; // 找到返回1,未找到返回0
temp = temp->next;
}
return 0;
}
// 显示列表内容
void displayList(Node* head) {
Node* temp = head;
while (temp != NULL) {
printf("%d ", temp->data);
temp = temp->next;
}
printf("\n");
}
// 示例主函数
int main() {
Node* head = NULL;
// 插入操作
insertAtEnd(&head, 10);
insertAtEnd(&head, 20);
insertAtEnd(&head, 30);
// 显示并验证
displayList(head); // 输出: 10 20 30
// 删除元素并显示
deleteElement(&head, 20);
displayList(head); // 输出: 10 30
return 0;
}
```
以上代码实现了顺序表的基本功能,你可以根据需要添加其他运算。
阅读全文