C语言线性表:插入、删除、查找操作详解
C语言线性表:插入、删除、查找操作详解
线性表是最基本的数据结构之一,理解线性表的插入、删除、查找操作是掌握数据结构和算法的基础。
本文提供一份完整的C语言线性表实现代码,包含插入、删除、查找等操作,并附带详细的代码注释,帮助你快速上手。
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
typedef struct {
int data[MAX_SIZE];
int length;
} List;
// 初始化线性表
void initList(List *list) {
list->length = 0;
}
// 在指定位置插入元素
int insertElement(List *list, int position, int value) {
if (position < 0 || position > list->length || list->length == MAX_SIZE) {
return -1; // 插入位置无效或线性表已满,返回-1表示插入失败
}
// 将插入位置及之后的元素后移一位
for (int i = list->length-1; i >= position; i--) {
list->data[i+1] = list->data[i];
}
list->data[position] = value; // 在插入位置插入新元素
list->length++; // 线性表长度加1
return 0; // 返回0表示插入成功
}
// 删除指定位置的元素
int deleteElement(List *list, int position) {
if (position < 0 || position >= list->length || list->length == 0) {
return -1; // 删除位置无效或线性表为空,返回-1表示删除失败
}
// 将删除位置之后的元素前移一位
for (int i = position+1; i < list->length; i++) {
list->data[i-1] = list->data[i];
}
list->length--; // 线性表长度减1
return 0; // 返回0表示删除成功
}
// 查找指定值在线性表中的位置
int searchElement(List *list, int value) {
for (int i = 0; i < list->length; i++) {
if (list->data[i] == value) {
return i; // 返回元素在线性表中的位置
}
}
return -1; // 表示未找到指定值
}
int main() {
List myList;
initList(&myList);
// 在位置1插入元素5
insertElement(&myList, 1, 5);
// 删除位置0的元素
deleteElement(&myList, 0);
// 查找元素5在线性表中的位置
int position = searchElement(&myList, 5);
if (position != -1) {
printf('元素5在线性表中的位置为:%d\n', position);
} else {
printf('元素5未找到\n');
}
return 0;
}
代码说明:
- 结构体定义: 使用
struct定义了一个名为List的结构体,包含一个整型数组data用于存储线性表元素,以及一个整型变量length用于记录线性表的长度。 - 初始化:
initList函数用于初始化线性表,将线性表长度设置为0。 - 插入:
insertElement函数在指定位置插入元素。 - 删除:
deleteElement函数删除指定位置的元素。 - 查找:
searchElement函数查找指定值在数组中的位置,如果找到则返回对应下标,否则返回 -1。 - 主函数:
main函数演示了如何使用上述函数进行线性表的插入、删除和查找操作。
希望本文能够帮助你更好地理解线性表的插入、删除、查找操作。
原文地址: https://www.cveoy.top/t/topic/lsI 著作权归作者所有。请勿转载和采集!