C语言实现顺序表:初始化、插入、删除、查找
C语言实现顺序表:初始化、插入、删除、查找
本文介绍如何使用C语言的结构体 SeqList 来定义一个顺序表,并实现基本的顺序表操作,包括初始化、增加元素、删除元素以及查找元素。
代码示例
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100 // 定义顺序表的最大长度
// 定义顺序表结构体
typedef struct {
int data[MAX_SIZE]; // 用于存储元素的数组
int length; // 顺序表的当前长度
} SeqList;
// 初始化顺序表
void init(SeqList *list) {
list->length = 0; // 将顺序表的长度初始化为0
}
// 向顺序表中增加元素
void addElement(SeqList *list, int element) {
if (list->length >= MAX_SIZE) { // 如果顺序表已满,无法插入元素
printf('顺序表已满,无法插入元素!\n');
return;
}
list->data[list->length] = element; // 在顺序表的末尾插入元素
list->length++; // 顺序表长度加1
}
// 从顺序表中删除元素
void deleteElement(SeqList *list, int index) {
if (index < 0 || index >= list->length) { // 如果删除位置无效
printf('删除位置无效!\n');
return;
}
// 将删除位置后面的元素依次向前移动
for (int i = index; i < list->length - 1; i++) {
list->data[i] = list->data[i + 1];
}
list->length--; // 顺序表长度减1
}
// 在顺序表中查找元素
int search(SeqList list, int element) {
for (int i = 0; i < list.length; i++) {
if (list.data[i] == element) { // 如果找到元素
return i; // 返回元素在顺序表中的位置
}
}
return -1; // 如果未找到元素,返回-1
}
int main() {
SeqList list; // 定义一个顺序表
init(&list); // 初始化顺序表
addElement(&list, 2); // 向顺序表中增加元素 2
addElement(&list, 4); // 向顺序表中增加元素 4
addElement(&list, 6); // 向顺序表中增加元素 6
deleteElement(&list, 1); // 从顺序表中删除位置为 1 的元素
int index = search(list, 4); // 在顺序表中查找元素 4 的位置
if (index != -1) {
printf('元素4在顺序表中的位置为:%d\n', index);
} else {
printf('元素4不在顺序表中。\n');
}
return 0;
}
代码解释
#define MAX_SIZE 100: 定义顺序表的最大长度为100。typedef struct { ... } SeqList;: 定义一个名为SeqList的结构体,表示顺序表。void init(SeqList *list): 初始化顺序表,将长度设置为0。void addElement(SeqList *list, int element): 向顺序表中添加元素,如果顺序表已满则输出提示信息。void deleteElement(SeqList *list, int index): 删除指定位置的元素,如果删除位置无效则输出提示信息。int search(SeqList list, int element): 查找指定元素,返回其在顺序表中的位置,如果未找到则返回-1。main(): 主函数,演示如何使用上述函数进行顺序表操作。
总结
本文介绍了如何使用C语言实现顺序表的基本操作,包括初始化、插入、删除和查找。 通过学习本篇文章,你可以对顺序表数据结构及其操作有更深入的了解。
原文地址: https://www.cveoy.top/t/topic/Yc9 著作权归作者所有。请勿转载和采集!