C语言顺序表实现:结构体、基本操作函数及示例
C语言顺序表实现:结构体、基本操作函数及示例
本文提供C语言实现顺序表的代码,包含结构体定义和基本操作函数,例如初始化、唯一化、输出、获取大小、查找、插入和删除区间等。并附带示例代码演示如何使用这些函数进行操作。
#include <stdio.h>
#include <stdbool.h>
#define MAX_SIZE 100
// 定义顺序表的结构体
typedef struct {
int data[MAX_SIZE];
int length;
} SeqList;
// 初始化顺序表
void init(SeqList* list) {
list->length = 0;
}
// 在顺序表中查找元素的索引
int findElement(SeqList* list, int element) {
for (int i = 0; i < list->length; i++) {
if (list->data[i] == element) {
return i;
}
}
return -1; // 若未找到,返回-1
}
// 在顺序表中插入元素
void insertElement(SeqList* list, int element) {
if (list->length == MAX_SIZE) {
printf('顺序表已满,无法插入元素!\n');
return;
}
int index = findElement(list, element);
if (index != -1) {
printf('元素已存在,无法重复插入!\n');
return;
}
list->data[list->length] = element;
list->length++;
}
// 删除顺序表中指定区间内的元素
void deleteRange(SeqList* list, int start, int end) {
if (start < 0 || end >= list->length || start > end) {
printf('无效的区间!\n');
return;
}
for (int i = start; i <= end; i++) {
for (int j = i + 1; j < list->length; j++) {
list->data[j - 1] = list->data[j];
}
list->length--;
}
}
// 移除顺序表中的重复元素
void unique(SeqList* list) {
for (int i = 0; i < list->length; i++) {
for (int j = i + 1; j < list->length; j++) {
if (list->data[i] == list->data[j]) {
deleteRange(list, j, j);
j--; // 删除元素后,需要对当前索引进行调整
}
}
}
}
// 输出顺序表的元素
void printList(SeqList* list) {
printf('顺序表元素:');
for (int i = 0; i < list->length; i++) {
printf('%d ', list->data[i]);
}
printf('\n');
}
// 获取顺序表的大小
int getSize(SeqList* list) {
return list->length;
}
int main() {
SeqList list;
init(&list);
// 插入元素
insertElement(&list, 5);
insertElement(&list, 2);
insertElement(&list, 9);
insertElement(&list, 2);
insertElement(&list, 7);
// 输出顺序表
printList(&list);
// 获取顺序表的大小
int size = getSize(&list);
printf('顺序表的大小:%d\n', size);
// 查找元素7
int index = findElement(&list, 7);
if (index != -1) {
printf('元素7在顺序表中的索引为:%d\n', index);
} else {
printf('元素7不在顺序表中。\n');
}
// 删除区间[1, 3]的元素
deleteRange(&list, 1, 3);
// 输出顺序表
printList(&list);
return 0;
}
上述代码实现了顺序表的初始化、唯一化、输出、获取顺序表大小、查找元素、插入元素和删除区间等基本操作函数。在主程序中,我们初始化了一个顺序表,并对其进行了一系列操作,包括插入元素、输出顺序表、获取顺序表的大小、查找元素和删除区间。您可以根据自己的需求进行修改和扩展。
总结
本文介绍了使用C语言实现顺序表的基本方法,并提供了相应的代码示例。希望对您理解和使用顺序表有所帮助。
相关资源
原文地址: https://www.cveoy.top/t/topic/RBT 著作权归作者所有。请勿转载和采集!