1、数据结构-顺序线性表的实现-C语言

#define MAXSIZE 100

//结构体定义

typedef struct

{

int *elem; //基地址

int length; //结构体当前长度

int listsize; //结构体最大长度

} Sqlist; //结构体类型名

//各项操作

void Show_Help()

{

printf("1---初始化线性表\n");

printf("2---销毁线性表\n");

printf("3---清空线性表\n");

printf("4---判断线性表是否为空\n");

printf("5---求线性表长度\n");

printf("6---获取线性表某位置元素\n");

printf("7---请输入元素的值,判断其在线性表中是否存在,并返回其下标,不存在则返回0\n");

printf("8---求直接前驱\n");

printf("9---求直接后继\n");

printf("10---在线性表指定位置插入元素\n");

printf("11---删除线性表指定位置元素\n");

printf("12---显示线性表全部元素\n");

printf("13---翻转线性表全部元素\n");

printf("退出,输入一个负数\n");

}

//初始化线性表

void InitList(Sqlist* L)

{

L->elem = (int*) malloc(MAXSIZE*sizeof(int)); //给线性表分配初始空间

if(!(L->elem)){

printf("分配失败\n");

return ;

}

L->length = 0;

L->listsize = MAXSIZE;

}

//销毁线性表

void DestroyList(Sqlist* L)

{

if(L->elem)

free(L->elem); //销毁只需释放刚才给基地址分配的空间即可

L->length = 0;

}

//清空线性表

void ClearList(Sqlist* L)

{

L->length = 0;

}

//判断线性表是否为空

int ListEmpty(Sqlist L)

{

if(L.length)

return 0;

else

return 1;

}

//求线性表长度

int ListLength(Sqlist L)

{

return L.length;

}

//获取线性表某位置元素

void GetElem(Sqlist L,int i,int* e)

{

e = L.elem[i-1];

}

//请输入元素的值,判断其在线性表中是否存在,并返回其下标,不存在则返回0

int LocateElem(Sqlist L,int e)

{

int position = 0;

for(int i=0; i

{

if(L.elem[i] == e)

{

position = i+1;

break;

}

}

return position;

}

//求直接前驱

void PriorElem(Sqlist L,int cur_e,int* pre_e)

{

pre_e = L.elem[cur_e-2];

}

//求直接后继

void NextElem(Sqlist L,int cur_e,int* next_e)

{

next_e = L.elem[cur_e];

}

//在线性表指定位置插入元素

void ListInsert(Sqlist* L,int i,int e)

{

for(int j=L->length; j>=i; j--)

{

L->elem[j] = L->elem[j-1];

}

L->elem[i-1] = e;

L->length++;

}

//删除线性表指定位置元素

void ListDelete(Sqlist* L,int i)

{

for(int j=i-1; jlength-1; j++)

{

(*L).elem[j] = (*L).elem[j+1];

}

L->length--;

}

//显示线性表全部元素

void TraverList(Sqlist L)

{

printf("线性表中的元素有:");

for(int i=0; i

{

printf("%d ",L.elem[i]);

}

printf("\n");

}

//翻转线性表全部元素

void Flip(Sqlist L)

{

int num = L.length / 2;

int* begin = &L.elem[num-1];

int* end = &L.elem[L.length-num];

int middle;

while(num)

{

middle = *begin;

*begin = *end;

*end = middle;

num--;

begin = &L.elem[num-1];

end = &L.elem[L.length-num];

}

printf("翻转成功\n");

}

欢迎转载,转载请标明出处哦

用标准C语言初始化线性表,C语言数据结构-顺序线性表的实现-初始化、销毁、长度、查找、前驱、后继、插入、删除、显示操作...相关推荐

  1. C语言实现数据结构顺序线性表

    大家好,我是胡阳阳 数据结构一直以来都是一门很难的学科 学数据结构时老师总讲的思想和伪代码 对于初学者来说很难写出对应的程序 下面我们来讲解如何才能自己写出顺序线性表的代码 首先顺序线性表是由数组来实 ...

  2. 用c语言实现单链表的初始化,建表,查找,求长度,插入,删除等操作,【YTU+2430+C语言习题+链表建立+插入+删除+输(5)...

    的打印.判断链表是否为空.计算链表长度.插入节点.删除节点.删除整个链表.(2) 线性表adt顺序存储实现中的创建.查找.插入和删除等基本操作及相关算法,线性表adt链式存储实现中单链表.循环链表和双 ...

  3. java 线性表定义_Java数据结构的线性表是怎样的

    Java数据结构--线性表的顺序存储实现 一.描述 线性结构特点: (1)存在唯一的一个被称作"第一个"的数据元素 (2)存在唯一的一个被称作"最后一个"的数据 ...

  4. 顺序表倒置java_数据结构-顺序表 java实现-Go语言中文社区

    知识点 线性表的顺序结构存储结构简称为顺序表. 线性表逻辑顺序相邻,顺序表存储位置相邻. 便于随机存取. 删除和插入可能要移动大量元素,效率低. 解决溢出的方法是新建另一个大容量数组,效率低. 实现 ...

  5. python顺序表数组_数据结构 | 顺序表

    什么是数据结构? 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成. 简单来说,数据结构就是设计数据以何种方式组织并存储在计算机中. 比如:列表.集合与字典等都 ...

  6. C语言丨线性表(二):线性链表(单链表)

    线性表是由数据类型相同的个数据元素组成的有限序列,通常记为: 其中n为表长,n=0时称为空表:下标i表示数据元素的位序. 线性表的特点是组成它的数据元素之间是一种线性关系,即数据元素"一个接 ...

  7. 数据结构(线性表树图)

    一.线性结构 1.1线性表  定义:线性表是n个元素的有限序列,通常表示为{a1,a2,...,an},对于非空线性表有如下几个特点: 1)存在唯一的一个被称为"第一个"(&quo ...

  8. 数据结构——顺序表的合并

    数据结构--顺序表的合并 具体要求:写一个函数,其函数的功能是将非递增顺序表LA和LB合并到非递增顺序表LC中 数据结构-顺序表的操作之合并顺序表 一.顺序表的结构 首先要定义的是顺序表的结构体,只有 ...

  9. c语言实现一元多项式程序报告设计,数据结构课程设计报告一元多项式的计算..doc...

    数据结构课程设计报告一元多项式的计算. 题目:一元多项式的计算 --链表 摘要(题目) 一元多项式计算 任务:能够按照指数降序排列建立并输出多项式: 能够完成两个多项式的相加.相减,并将结果输入: 目 ...

最新文章

  1. NetworkInfo 方法过时的处理方法
  2. Elasticsearch之Search API
  3. 浅谈JavaScript错误
  4. Spring5的Web 组件
  5. HDU- 最大报销额
  6. [转]svn常用命令
  7. 4K修复版《海上钢琴师》登陆全国院线,一文读懂背后的黑科技!
  8. windows 本地搭建git仓库_Windows系统下搭建Git本地代码库
  9. 实现较低的计时器粒度以重传TCP(RTO):时间轮算法如何减少开销
  10. 登 GitHub 趋势榜首德国疫情追踪 App 号称可保疫情隐私数据无忧,你信吗?
  11. Google 不要 Android 了?新系统 Fuchsia 或将支持 Java
  12. CCF NOI1004 填充矩形
  13. ERPSYSTEM开发教程01 框架介绍
  14. linux 内核 内存管理 bootmem alloctor 的初始化
  15. com.android.gallery3d文件夹,如何在Android Gallery3D(cooliris)中显示特定文件夹?
  16. mysql gui tools ojdbc14.jar_转 OJDBC驱动版本区别 [ojdbc14.jar,ojdbc5.jar跟ojdbc6.jar的区别]...
  17. 计算机系统的软件有,计算机系统软件有哪些
  18. 近视眼手术之后计算机专业,做完近视激光手术后多久可以整天对着电脑工作。应注意什么?...
  19. 强化学习——多智能体强化学习
  20. 设计模式四:用一个生产手机的简单例子说清楚工厂模式

热门文章

  1. 搭建hadoop和spark分布式环境
  2. faster-rcnn tensorflow windows demo运行
  3. GWO(灰狼优化)算法
  4. 测试m.2固态的软件,Ryzen新平台下M.2固态硬盘性能测试
  5. python 文件操作不被打断_python学习六文件操作和异常处理
  6. mysql proxy 多主_mysql多主多从架构与mysql-proxy读写分离
  7. python gc清理无用变量与内存
  8. python 字节码操作_从操作码和参数列表创建Python字节码?
  9. php微信40037,服务号发送模板消息问题,错误码:40037
  10. spring-boot-2.0.3应用篇 - shiro集成