用c语言写一个顺序表
时间: 2024-12-08 18:13:23 浏览: 13
C语言实现动态顺序表的实现代码
在C语言中,我们可以使用结构体(struct)和指针来创建一个简单的顺序表(数组实现)。这里是一个基本的例子:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义顺序表节点结构体
typedef struct {
int data; // 数据域
struct Node* next; // 指向下一个节点的指针
} Node;
// 初始化顺序表
Node* createList() {
Node* head = NULL;
return head;
}
// 添加元素到列表尾部
void appendList(Node** head, int value) {
Node* newNode = (Node*)malloc(sizeof(Node)); // 分配内存
if (newNode != NULL) {
newNode->data = value;
newNode->next = NULL;
if (*head == NULL) { // 如果表为空,新节点既是头节点
*head = newNode;
} else {
Node* current = *head;
while (current->next != NULL) {
current = current->next;
}
current->next = newNode; // 将新节点添加到尾部
}
} else {
printf("Memory allocation failed.\n");
}
}
// 打印顺序表
void printList(Node* head) {
Node* temp = head;
while (temp != NULL) {
printf("%d -> ", temp->data);
temp = temp->next;
}
printf("NULL\n");
}
int main() {
Node* head = createList();
appendList(&head, 10);
appendList(&head, 20);
appendList(&head, 30);
printList(head); // 输出:10 -> 20 -> 30 -> NULL
return 0;
}
```
在这个例子中,我们首先定义了一个`Node`结构体表示顺序表中的每个节点,包含数据域和指向下一个节点的指针。然后实现了创建空表、添加元素和打印列表的功能。在`main`函数中演示了如何使用这些操作。
阅读全文