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语言顺序表的定义、创建、插入、删除和查找等操作,并提供了完整的代码示例。顺序表是一种简单易懂的数据结构,在实际应用中有着广泛的应用。

C语言顺序表:实现插入、删除、查找操作及完整代码示例

原文地址: http://www.cveoy.top/t/topic/f3xM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录