C语言顺序表:实现插入、删除、查找操作及完整代码示例
C语言顺序表:实现插入、删除、查找操作及完整代码示例
简介
顺序表是一种线性表的数据结构,它使用一段连续的存储空间来存储数据元素,逻辑上相邻的元素在物理存储位置上也是相邻的。本文将使用C语言实现顺序表的定义、创建、插入、删除和查找操作,并提供完整的代码示例。
顺序表的定义c#include <stdio.h>#include <stdlib.h>
#define MAX_SIZE 100
typedef struct { int data[MAX_SIZE]; // 存储元素的数组 int length; // 顺序表当前长度} SeqList;
代码解释:
MAX_SIZE定义了顺序表的最大长度。*SeqList结构体定义了顺序表,包含两个成员: *data:一个整型数组,用于存储顺序表的元素。 *length:一个整型变量,表示顺序表当前的长度。
创建顺序表cvoid initList(SeqList *list) { list->length = 0;}
代码解释:
initList函数用于初始化顺序表,将顺序表的长度设置为0。
插入元素cvoid insertElement(SeqList *list, int element, int position) { if (position < 1 || position > list->length + 1) { printf('Invalid position
'); return; }
if (list->length >= MAX_SIZE) { printf('List is full
'); return; }
for (int i = list->length; i >= position; i--) { list->data[i] = list->data[i-1]; }
list->data[position-1] = element; list->length++;}
代码解释:
insertElement函数用于在顺序表的指定位置插入元素。* 首先检查插入位置是否合法,以及顺序表是否已满。* 如果插入位置合法且顺序表未满,则将插入位置及之后的元素后移一位,然后将要插入的元素放入指定位置,最后将顺序表的长度加1。
删除元素cvoid deleteElement(SeqList *list, int position) { if (position < 1 || position > list->length) { printf('Invalid position
'); return; }
for (int i = position; i < list->length; i++) { list->data[i-1] = list->data[i]; }
list->length--;}
代码解释:
deleteElement函数用于删除顺序表指定位置的元素。* 首先检查删除位置是否合法。* 如果删除位置合法,则将删除位置之后的元素前移一位,最后将顺序表的长度减1。
查找元素cint getElement(SeqList *list, int position) { if (position < 1 || position > list->length) { printf('Invalid position
'); return -1; }
return list->data[position-1];}
代码解释:
getElement函数用于获取顺序表指定位置的元素。* 首先检查查找位置是否合法。* 如果查找位置合法,则返回该位置的元素。
完整代码示例c#include <stdio.h>#include <stdlib.h>
#define MAX_SIZE 100
typedef struct { int data[MAX_SIZE]; int length;} SeqList;
void initList(SeqList *list) { list->length = 0;}
void insertElement(SeqList *list, int element, int position) { // ... (代码同上)}
void deleteElement(SeqList *list, int position) { // ... (代码同上)}
int getElement(SeqList *list, int position) { // ... (代码同上)}
void displayList(SeqList *list) { for (int i = 0; i < list->length; i++) { printf('%d ', list->data[i]); } printf(' ');}
int main() { SeqList list; initList(&list);
insertElement(&list, 1, 1); insertElement(&list, 2, 2); insertElement(&list, 3, 1); insertElement(&list, 4, 3);
printf('List: '); displayList(&list);
deleteElement(&list, 2);
printf('List after deleting element at position 2: '); displayList(&list);
int element = getElement(&list, 3); printf('Element at position 3: %d
', element);
return 0;}
总结
本文介绍了C语言顺序表的定义、创建、插入、删除和查找等操作,并提供了完整的代码示例。顺序表是一种简单易懂的数据结构,在实际应用中有着广泛的应用。
原文地址: http://www.cveoy.top/t/topic/f3xM 著作权归作者所有。请勿转载和采集!