用C语言编程实现以下功能: 线性表顺序结构存储数据,用C语言实现线性表的初始化、插入操作、删除操作、显示线性表中所有元素、线性表的逆序操作、统计线性表中元素个数、判断线性表是否为空、判断线性表是否为满、在线性表中查找某个元素等。
时间: 2024-10-10 13:15:20 浏览: 53
在C语言中,我们可以创建一个简单的线性表结构,通常用数组或动态内存分配(如`malloc`)来存储数据。这里是一个基本的实现示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义线性表节点结构
typedef struct Node {
int data;
struct Node* next;
} Node;
// 初始化线性表
Node* initList() {
return (Node*)malloc(sizeof(Node));
}
// 插入操作
void insert(Node** head, int value) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = value;
newNode->next = *head;
*head = newNode;
}
// 删除操作(仅支持删除头部元素)
void deleteHead(Node** head) {
if (*head != NULL) {
Node* temp = *head;
*head = (*head)->next;
free(temp);
}
}
// 显示线性表元素
void display(Node* head) {
while (head != NULL) {
printf("%d ", head->data);
head = head->next;
}
printf("\n");
}
// 逆序操作
void reverseList(Node** head) {
Node* prev = NULL;
Node* current = *head;
Node* nextTemp;
while (current != NULL) {
nextTemp = current->next;
current->next = prev;
prev = current;
current = nextTemp;
}
*head = prev;
}
// 统计元素个数
int countElements(Node* head) {
int count = 0;
Node* temp = head;
while (temp != NULL) {
count++;
temp = temp->next;
}
return count;
}
// 判断线性表是否为空
int isListEmpty(Node* head) {
return head == NULL;
}
// 判断线性表是否已满(这里假设固定大小的线性表)
int isFull(int capacity, Node* head) {
return countElements(head) >= capacity;
}
// 查找元素
int search(Node* head, int value) {
Node* temp = head;
while (temp != NULL) {
if (temp->data == value)
return 1; // 成功找到
temp = temp->next;
}
return 0; // 未找到
}
int main() {
Node* head = initList();
// 使用上述函数添加元素并操作线性表...
return 0;
}
```
阅读全文