数据结构 顺序表的基本操作实现 c语言

本文主要介绍了使用C语言实现顺序表的基本操作,包括创建、插入、删除等,是作者复习过程中的总结,欢迎交流指正。
摘要由CSDN通过智能技术生成

复习过程中的回顾(纯C语言版),如有不足,请批评指正。

/*顺序表*/
#include<stdio.h>
#include<stdlib.h>

#define ElemType int 
#define INITSIZE 80
#define INCRESEMENT 10

typedef struct{
	ElemType *elem;  //动态申请空间
	int length;   //数组的当前个数
	int maxSize;  //数组的最大容量
}SeqList;

int InitList(SeqList *L); //初始化顺序表
int InputList(SeqList *L, ElemType a[], int n); //通过数组给顺序表赋值
void OutputList(SeqList L); //输出顺序表
int ListInsert(SeqList *L, int k, ElemType e); //插入操作,在顺序表L的第k个位置插入元素e
int ListDelete(SeqList *L, int k, ElemType *e); //删除第k个元素,并用e返回删除元素的值
void DestroyList(SeqList *L); //销毁顺序表申请的空间

void main(){
	SeqList L;  //如果L写成指针类型的话,即SeqList *L;就需要在主函数中申请空间 L = (SeqList*)malloc(sizeof(SeqList));
	ElemType a[] = { 1, 2, 3, 4, 6, 5, 9, 6, 3 };
	ElemType e;
	InitList(&L);
	InputList(&L, a, 9);
	OutputList(L);
	ListDelete(&L, 1, &e);
	OutputList(L);
	DestroyList(&L);
}

//初始化顺序表
int InitList(SeqList *L){
	L->
数据结构中的顺序表(Sequential List)是用一段连续的存储单元依次存储数据元素的线性结构。在C语言中,顺序表通常可以通过数组来实现基本操作包括初始化、插入、删除、查找、获取元素和更新元素等。 1. 初始化:创建一个固定大小的数组,用于存储顺序表的元素,并初始化长度为0。 2. 插入:在顺序表的指定位置插入一个新元素,需要移动插入位置之后的所有元素,以保证数据的连续性。 3. 删除:删除顺序表中指定位置的元素,并将删除位置之后的元素前移,以填补空缺。 4. 查找:在顺序表中查找给定值的第一个匹配元素的位置。 5. 获取元素:获取顺序表中指定位置的元素值。 6. 更新元素:修改顺序表中指定位置的元素值。 以下是一个简单的顺序表插入操作的C语言示例代码: ```c #include <stdio.h> #include <stdbool.h> #define MAX_SIZE 10 // 定义顺序表的最大长度 typedef struct { int data[MAX_SIZE]; // 存储顺序表的数组 int length; // 顺序表当前长度 } SeqList; // 初始化顺序表 void InitList(SeqList *L) { L->length = 0; } // 在顺序表的第i个位置插入新元素e bool ListInsert(SeqList *L, int i, int e) { if (i < 1 || i > L->length + 1 || L->length == MAX_SIZE) { return false; // 插入位置不合法或表满 } for (int j = L->length; j >= i; j--) { L->data[j] = L->data[j - 1]; // 将第i个位置及之后的元素后移 } L->data[i - 1] = e; // 在位置i处放入新元素 L->length++; return true; } // 主函数 int main() { SeqList L; InitList(&L); ListInsert(&L, 1, 10); // 在位置1插入元素10 // ... 可以继续调用ListInsert等函数进行操作 return 0; } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值