首页
学习
活动
专区
圈层
工具
发布

C语言顺序表

顺序表是c语言中的一个初阶的数据结构,相对简单,顺序表底层其实就是数组,物理上一定连续,逻辑上也连续 顺序表结构 typedef struct SeqList { SLDataType* arr;...因为头文件是类型的“共享声明载体”,顺序表的结构需要被多个源文件调用,所以写在头文件里面就很方便,只要其他原文件包含了头文件就能使用顺序表结构,那现在我们就可以根据这个头文件去创建一个顺序表的第一个节点然后再初始化内容...ps) { ps->arr = NULL; ps->size = ps->capacity = 0; } 将函数的声明写在头文件中,函数的实现写在cs.c文件中,通过指针操作符将顺序表初始化为一个空的顺序表...,成员大小和空间大小都为0 顺序表已经初始化为空指针和0 销毁 既然有了顺序表的初始化,就会可以销毁顺序表,同样定义一个函数 void SLDestroy(SL* ps) //顺序表的销毁 void SLDestroy...,指针指向的空间如果不为空,就释放掉这个空间,然后将这个指针指向空指针,再把成员大小和空间大小都置为0,就代表顺序表已经销毁了 剩下就来实现顺序表的增删改查功能 插入 尾插 既然要在顺序表的尾部插入一个节点

10310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C语言手撕顺序表

    一、概念 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 顺序表一般分为 1、静态顺序表:使用定长数组存储元素。...2、动态顺序表:使用动态开辟的数组存储 我们一般使用动态顺序表,因为静态顺序表的数组大小固定的,而动态可以根据我们需求的不同去在线扩容,所以接下来的文章围绕如何实现动态顺序表来讲解。...int SeqListFind(SeqList* ps, SLDateType x); // 顺序表在pos位置插入x void SeqListInsert(SeqList* ps, int pos,...SLDateType x); // 顺序表删除pos位置的值 void SeqListErase(SeqList* ps, int pos); //修改特定位置的值 void SeqListModify...心得: 顺序表开启了数据结构的的序章,顺序表算是很简单的数据结构了,从此我们需要敲一部分代码,编译一次,不能一股脑的输出,结果编译发现好多个bug,需要写一部分,编译一部分,这样才更加的有持续性。

    45410

    C语言——S顺序表专题

    一、顺序表的概念及结构 线性表 线性表(linearlist)是n个具有相同特性的数据元素的有限序列。线性表是⼀种在实际中⼴泛使⽤的数据结构,常⻅的线性表:顺序表、链表、栈、队列、字符串......线性表在逻辑上是线性结构,也就说是连续的⼀条直线。但是在物理结构上并不⼀定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。...二、顺序表分类 顺序表和数组的区别: 顺序表的底层结构是数组,对数组的封装,实现了常⽤的增删改查等接口,逻辑结构是线性,且物理结构也是线性。...1、静态顺序表:使用定长数组存储元素 静态顺序表缺陷:空间给少了不够⽤,给多了造成空间浪费 2、动态顺序表:按需申请 3、动态顺序表的实现 #define INIT_CAPACITY 4 typedef...size - 1] = -1; ps->size--; } 四、头删 顺序表为空:不能执行删除操作; 顺序表不为空:后面的数据往前挪动一位。

    37610

    【线性表】之顺序表(C语言)

    【线性表】之顺序表 线性表 线性表(linear list)是n个具有相同特性元素的有限序列 。...线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串… 线性表在逻辑上是线性结构,也就说是连续的一条直线。...但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。 顺序表 它是最简单的数据结构,也是最常用的数据结构——他的作用就是将数据存起来。...概念:顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 顺序表一般可分为: 1.静态顺序表:使用定长数据存储。...2.动态顺序表:使用动态开辟的数组存储。

    92910

    用c语言实现顺序表_顺序表代码讲解以及实现

    你们的每个赞都能让我开心好几天✿✿ヽ(°▽°)ノ✿ 目录 一、学习内容 二、准备工作 三、顺序表的结构 四、顺序表的基本操作 1. 创建顺序表 2. 按数值查找 3. 按位置查找 4....销毁顺序表 7. 求前驱算法 8....因为顺序表的数据类型不一定是int,有可能是double等其他类型,采用宏定义的好处就是:若需要改变顺序表的数据类型,只需要在宏定义处改变int为其他的数据类型即可(理论上确实如此,但由于我的代码后面用到了随机数产生顺序表的元素...实际上就是表明顺序表基本操作的一个状态。用bool逻辑值也可以,或者等等,只要能表示出顺序表的基本操作的状态即可。...销毁顺序表 Status List_Destroy(Sqlist *L) { if(status==NoCreate) { printf("您还没有创建顺序表!

    2.2K20

    线性表之顺序表(C语言实现)

    但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储....二、顺序表 概念: 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。...顺序表一般分为;两种:1.静态顺序表 2.动态顺序表 静态顺序表实际作用不大,本篇主要讲解动态顺序表. 2.1 静态顺序表简单介绍: 静态顺表是指顺序表的容量是固定的,如果看过c语言实现通讯录的友友们...尾插: 插入操作之前都需要先判断顺序表是否已满. 以size作为下标,将新元素插入进数组. size++,顺序表长度+1....//void PrintSQL(SQL SL); void PrintSQL(SQL* SL); //顺序表的销毁 void DestorySQL(SQL SL); 函数实现区(SQList.c)

    1.2K30

    【C语言入门数据结构】顺序表

    但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。...2.顺序表(数组) 2.1概念及结构 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。...顺序表一般可以分为静态顺序表和动态顺序表: 静态顺序表:使用定长数组存储元素。 缺陷:给小了不够用,给大了可能浪费,不实用。 动态顺序表:使用动态开辟的数组存储。...静态顺序表的定长数组导致N定大了,空间开多了浪费,开少了不够用。所以现实中基本都是使用动态顺序表,根据需要动态的分配空间大小,所以下面我们实现动态顺序表。...首先新建一个工程: SeqList.h(顺序表的类型定义、接口函数声明、引用的头文件) SeqList.c(顺序表接口函数的实现) Test.c(主函数、测试顺序表各个接口功能) (1)初始化顺序表:

    62020

    【C语言】数据结构——顺序表超详解!!!(包含顺序表的实现)

    前言: 往期,我们讲解了C语言的基础语法知识,知道了数组、函数、指针、结构体、文件等相关知识 现在,在掌握扎实的C语言语法基础后,我们可以来进一步学习数据结构 所以,从今天开始,小编将为大家带来数据结构的知识...2.顺序表定义 顺序表 本质上是在数组基础上进行维护和封装的数据结构,其底层存储仍然使用数组,在数组的基础上增加了增删查改等方法 顺序表就是线性表的一种,而前面我们说过顺序表的底层存储仍然使用数组...,静态顺序表有一个问题 如果数组空间大小给小了,那么空间将不够用 如果数组空间大小给大了,那么空间将会浪费 而基于这一个问题,就产生了动态顺序表 动态顺序表就可以很好的解决这一个问题 (2)...&源文件 之前在讲解扫雷游戏中我就提到: 在写复杂程序时要养成写多个头文件&源文件的好习惯,这样条理就很清晰也不会乱 详见【C语言】扫雷游戏详解(包含递归,变色,记录时间等) 如图: 创建了一个...可能会传入空指针,而我们知道空指针是不能进行解引用的 故为了我们的代码更加健壮,可以加入assert 断言来判断是否符合条件,在之后的代码中也都有 关于更加详细的assert 断言介绍可参见下文: 【C语言

    14310

    顺序表详解及其c语言代码实现

    (顺序存储结构)和链表(链式存 储结构) 顺序表: 在计算机内存中以数组的形式保存的线性表 二 顺序表的代码实现(注释详细) 1....顺序表的初始化 多文件编写- Table.h (用于函数定义) , Table.c (写入函数内容与Table.h联合使用) , main.c (主程序) 文件名Table.h //结构体 Table:...(表以创建完成,只需向表中存储内容) Table* SetTable(Table* ptable); 文件名:Table.c (尝试多文件编写) // 创建一个(int型数据)顺序表 // 参数:初始长度...输出顺序表 displayTable(t); return 0; } 2.顺序表的基本操作 这里只给出Table.c的代码实现,具体内容见完整代码 增(插入元素) ?...main.c #include #include"Table.h" int main() { // 创建顺序表 Table t; t = CreatTable(5); // 给初始值 SetTable

    2.5K40

    线性表--顺序表--数组(三)

    线性表的逻辑结构简单,便于实现和操作。因此,线性表这种数据结构在实际应用中是广泛采用的一种数据结构。而且线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素。...由于博主是先学习的C语言,而线性表的顺序存储结构可借助于C语言的一维数组来实现,而一维数组的下标与元素在线性表中的序号相对应。...二.线性表基本定义及操作运算 1.顺序表顺序储存结构的定义 2.顺序表初始化 3.顺序表赋值 4.顺序表取值 5.顺序表显示值 6.顺序表插入 7.顺序表删除 8.顺序表归并 9.销毁内存...(int)*MAXSIZE); //线性表占用的数组空间。...顺序表取值 int GetElem(Seqlist *L, int e)//第e个位置的元素。 { return L->elem[e - 1];//由于数组从0开始,所以e-1。

    1.1K30

    数据结构——顺序表(C语言版)

    顺序表是数据结构中最基本的一种线性表,它以一段连续的存储空间来存储数据元素,元素之间的顺序由它们在内存中的位置来决定。在C语言中,我们通常使用数组来实现顺序表。...顺序表的结构定义 首先,我们需要定义一个结构体来表示顺序表,包括数据元素数组和当前元素个数等信息: #define MAX_SIZE 100 // 定义顺序表的最大容量 typedef struct...{ int data[MAX_SIZE]; // 数据元素数组 int length; // 当前元素个数 } SeqList; 顺序表的基本操作 初始化顺序表 void initSeqList...的位置为: %d\\n", index); } else { printf("元素30不存在\\n"); } return 0; } 通过以上实现,我们可以在C语言中创建...、插入、删除和查找顺序表中的元素。

    64810
    领券