能否提供一个用C语言实现的线性表(如数组或链表)的示例代码?
时间: 2024-11-25 20:33:18 浏览: 12
简单介绍线性表以及如何实现双链表
当然可以,这里是一个简单的C语言实现的单向链表作为线性表的例子:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义节点结构体
typedef struct Node {
int data; // 数据域
struct Node* next; // 指针域,指向下一个节点
} Node;
// 创建一个新的节点
Node* createNode(int value) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode != NULL) {
newNode->data = value;
newNode->next = NULL;
}
return newNode;
}
// 在链表末尾添加新节点
void appendList(Node** headRef, int value) {
if (*headRef == NULL) {
*headRef = createNode(value);
} else {
Node* lastNode = *headRef;
while (lastNode->next != NULL) {
lastNode = lastNode->next;
}
lastNode->next = createNode(value);
}
}
// 打印链表内容
void printList(Node* node) {
while (node != NULL) {
printf("%d -> ", node->data);
node = node->next;
}
printf("NULL\n");
}
int main() {
Node* head = NULL;
appendList(&head, 10);
appendList(&head, 20);
appendList(&head, 30);
printf("Linked list elements are:\n");
printList(head);
return 0;
}
```
这个例子展示了如何创建链表、在链表末尾添加元素以及打印链表的内容。注意这只是一个基础的链表实现,实际项目中可能需要考虑更多因素,比如内存管理和错误处理。
阅读全文