顺序表(C语言)
在数据结构的世界里,顺序表是一种基础且重要的结构。它通常使用数组来实现,提供了快速的随机访问能力。本文将介绍如何在C语言中实现一个简单的顺序表,包括初始化、插入、删除和打印操作。
1.定义顺序表结构体
首先,我们需要定义一个结构体来表示顺序表:
#define Max_Size 100
typedef int ElemType;
typedef struct {
ElemType* data; //存放线性表中的长度
int length; //存放线性表长度
}Seqlist; //顺序表类型
2.初始化顺序表
接下来,我们需要实现一个初始化函数,为顺序表分配内存,并设置初始长度和容量:
// 创建顺序表
void initSeqlist(Seqlist* L) {
L->data = (ElemType*)malloc(sizeof(ElemType)*Max_Size);
if(L->data == NULL) {
printf("顺序表创建失败\n");
}
L->length = 0;
}
3.插入元素
3.1顺序表头插
//顺序表头插
void insertATBegining(Seqlist* L) {
int elem = 0;
printf("请输入要头插的元素:\n");
scanf("%d",&elem);
if(L->length >= Max_Size) {
printf("顺序表已满,无法插入");
}
else {
for (int i = L->length - 1; i >= 0; i--) {
L->data[i + 1] = L->data[i];
}
L->data[0] = elem;
L->length++;
}
}
3.2 顺序表尾插
//顺序表尾插
void insertAtBegining(Seqlist* L) {
int elem = 0;
printf("请输入要尾插的元素:\n");
scanf("%d",&elem);
if(L->length >= Max_Size) {
printf("顺序表已满,无法插入");
}
else {
L->data[L->length] = elem;
L->length++;
}
}
4.删除顺序表指定元素
//删除指定元素
void DetateElem(Seqlist* L) {
int elem = 0;
printf("请输入要删除的元素:\n");
scanf("%d",&elem);
for (int i = 0; i < L->length; i++) {
if(L->data[i] == elem) {
for (int j = i; j < L->length - 1; j++) {
L->data[j] = L->[j + 1];
}
L->length--;
}
}
}
5.查找元素
// 查找元素是否在顺序表中
bool findelem(Seqlist* L) {
int elem = 0;
printf("请输入要查找的元素:\n");
scanf("%d",&elem);
for (int i = 0; i < L->length; i++) {
if (L->data[i] == elem) {
return true;
}
}
return false;
}
6.输出顺序表
// 输出顺序表
void DispSeqlise(Seqlist* L) {
if(L->length == 0) {
printf("线性表为空\n");
}
for (int i = 0; i < L->length; i++) {
printf("%d",L->data[i]);
}
}
7.销毁顺序表
// 销毁顺序表
void deleteSeqlist(Seqlist* L) {
free(L);
}
顺序表(C语言)的更多相关文章
- 数据结构与算法之顺序表C语言实现
顺序表等相关概念请自行查阅资料,这里主要是实现. 注: 1.顺序表C语言实现: 2.按较简单的方式实现,主要帮助理解,可在此基础上修改,更加完善: 3.提供几个简单函数,可自行添加功能: 4.可用C+ ...
- 顺序表C语言版
#include <stdio.h> /* * 顺序表最多输入N个数 */ #define N 10 #define OK 1 #define ERROR -1 struct sequeu ...
- 线性表之顺序表(C语言实现)
线性表是从数据元素的逻辑结构上定义的. 这种数据元素的逻辑结构的特征如下: 1.除开第一个和最后一个元素之外.所有元素都有一个前驱元素和后继元素. 2.第一个元素无前驱元素,但有后继元素. 3.最后一 ...
- 顺序表-Go语言实现
简单理解就是数组: 优缺点及使用场景 优点: 随机访问,在O(1)时间内找到第i个元素: 数据表中的数据是连续存放的,因此只要知道数据表中第一个元素的地址,那么后面的数据元素的地址就可以马上算出来. ...
- 顺序表-C语言实现
顺序存储线性表的结构体: #define MAXSIZE 100 //数组最大长度 typedef int ElemType; //元素类型 typedef struct //定义线性表结构体 { E ...
- 数据结构C语言版--动态顺序表的基本功能实现(二)
/* * 若各个方法结构体变量参数为: &L(即地址符加变量)则结构体变量访问结构成员变量时使用"." * 若为:*L(即取地址符加变量)则结构体变量访问结构体成员变量使用 ...
- C语言实现顺序表
C语言实现顺序表代码 文件SeqList.cpp #pragma warning(disable: 4715) #include"SeqList.h" void ShowSeqLi ...
- c语言进阶12-线性表之顺序表
一. 线性表的定义 为什么要学习线性表呢? 因为我们日常生活中存在种数据关系,计算机程序是为了解决日常生活的数据关系,因此我们要学习线性表. 线性表是什么呢? 线性表是由n个元素组成的有限序列. 需 ...
- 【数据结构】之顺序表(Java语言描述)
之前总结过使用C语言描述的顺序表数据结构.在C语言类库中没有为我们提供顺序表的数据结构,因此我们需要自己手写,详细的有关顺序表的数据结构描述和C语言代码请见[我的这篇文章]. 在Java语言的JDK中 ...
- 【数据结构】之顺序表(C语言描述)
顺序表是线性表的一种,它将元素存储在一段连续的内存空间中,表中的任意元素都可以通过下标快速的获取到,因此,顺序表适合查询操作频繁的场景,而不适合增删操作频繁的场景. 下面是使用 C语言 编写的顺序表的 ...
随机推荐
- Apache DolphinScheduler:深入了解大数据调度工具
一.海豚调度介绍 Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统.适用于企业级场景,提供了一个可视化操作任务.工作流和全生命周期数据处理过程的解 ...
- TGI 多-LoRA: 部署一次,搞定 30 个模型的推理服务
你是否已厌倦管理多个 AI 模型所带来的复杂性和高成本? 那么, 如果你可以部署一次就搞定 30 个模型推理服务会如何? 在当今的 ML 世界中,哪些希望充分发挥其数据的价值的组织可能最终会进入一个& ...
- 7E头的那些事儿(帧格式分析实例)
0. 前言 作为一名嵌入式工程师,经常需要通过UART与外设打交道,而对于串行总线来说,往往我们必须要进行帧同步.通常的做法是把信令包含在2个0x7E的中间. 除此之外还有HDLC.PPP等协议也会到 ...
- Viper:强大的Go配置解析库
1 介绍 Viper是适用于Go应用程序的完整配置解决方案.它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式.目前Star 26.6k, 它支持以下特性: 设置默认值 从JSON.T ...
- JavaScript设计模式样例七 —— 原型模式
原型模式(Prototype Pattern) 定义:用于创建重复的对象,同时又能保证性能.目的:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.场景:在运行期建立和删除原型. let ...
- Spherical Voxelization
Spherical Voxelization 标签: voxelization AI 摘要: 文档介绍了球面体素化的过程,包括重要的类和方法,如ConvertToSphericalVoxel和sphe ...
- 初三奥赛模拟测试1--T1回文
初三奥赛模拟测试1--\(T1\)回文 HZOI 题意 给定一个 \(n \times m\) 的,由字符组成的矩阵 \(A\) , 问你由 \(( 1 , 1 )\) 开始,点 \(( i , j ...
- Ansible-playbook 应用梳理
前面已经介绍过Ansible的安装配置及常见模块的使用 --<Linux下使用Ansible处理批量操作> Palybook简介 palybook是由一个或多个paly组成的列表,play ...
- sicp每日一题[1.42]
Exercise 1.42 Let f and g be two one-argument functions. The composition f after g is defined to be ...
- DOM – Event Listener (bubble, capture, passive, custom event)
前言 老掉牙的东西, 主要是想写 passive, 随便也写一点 bubble, capture 和 custom event 吧. Bubble Dom 监听事件是会冒泡的. 什么意思 ? 上图有 ...