线性表顺序结构,非链式:

包含两个部分:

          1.数组内存放的是要存储的数据,同时给出最大容量;

                                   2.最后一个数据的下标,由此可知实际存储的数据总数。

结构体描述:

typedef struct(){double data[max];//最多能存储的总数,表的最大容量int last;//last 是实际存储数据的最后一个的下标;  }List;List *Ptrl;
Ptrl->last+1 是存储的数据总数,即表的实际长度

 

    数据表效果如图,要注意第几个数与下标之间的+1关系,避免代码出错:

       

    建立空表函数,注意申请内存需要强制转换,否则是空指针的结构

List *Makeempty()
{List *Ptrl;Ptrl=(List *)malloc(sizeof(List));Ptrl->last=-1;//空表return Ptrl;        }

    查找数据函数

int find(double x,List *Ptrl)
{  int i=0;while(Ptrl->data[i]!=x && i<=Ptrl->last)i++;if(i>Ptrl->last) return -1;else return i; }

    

    插入函数,插入第i(1<=i<=last+2)个数据,即可以在下标0--last+1的位置上插入:

void add(double x,int i, List *Ptrl)
{  int j;if(Ptrl->last==max-1) {printf("full"); return;}//表内已经有max个数据if(i<1 || i>Ptrl->last+2) {printf("error"); return;}//只能插入第1个数到last+2个数for(j=Ptrl->last; j>=i-1; j--)Ptrl->data[j+1]=Ptrl->last[j]; ptrl->data[i-1]=x; Ptrl->last++;//存储实际数据个数加1,下标加1,注意更新数据总数 return; } 

    删除函数,删除第i个(1<=i<=last+1)数据,即可以删下标0-last的数据

void delete(int i,List *Ptrl)
{    int j;if(Ptrl->last==-1) {printf("empty"); return;}if(i<1||i>Ptrl->last+1) {printf("error"); return;}for(j=i-1;j<Ptrl->last;j++)Ptrl->data[j]=Ptrl->data[j+1]; Ptrl->last--;//实际存储数据个数-1,下标-1,注意更新数据总数 return; }

转载于:https://www.cnblogs.com/guoshiyv/p/7045915.html

数据结构与算法2——线性顺序存储相关推荐

  1. 数据结构与算法(一) 线性表之顺序表

     线性表是一种最简单.最常用的数据结构,根据存储方式可以分为顺序表和链表.  顺序表: 顺序表指的是用一组地址连续的存储单元依次存储线性表的数据元素,称为线性表的顺序存储结构或顺序映像(sequent ...

  2. 数据结构和算法基础--线性表

    数据结构和算法基础–线性表 数据结构 = 数据的逻辑结构+数据的存储结构+数据的运算 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-28ek7MfI-164242629 ...

  3. 从零开始学数据结构和算法(二)线性表的链式存储结构

    链表 链式存储结构 定义 线性表的链式存储结构的特点是用一组任意的存储单元的存储线性表的数据元素,这组存储单元是可以连续的,也可以是不连续的. 种类 结构图 单链表 应用:MessageQueue 插 ...

  4. 黑马程序员 C语言数据结构与算法之线性表(链表/栈/队列/顺序表)

    C语言 链表基础知识清晰讲解(黑马) 讲的蛮好,就是音质不太好,有时听不清讲的啥! [黑马]数据结构与算法之线性表(链表/栈/队列/顺序表)[配套源码 嘛蛋,看错了,这是java的... 文章目录 链 ...

  5. rsa算法c语言实现_数据结构与算法之线性表-顺序表实现(C语言版本)

    原文托管在Github: https://github.com/shellhub/blog/issues/52 数据结构与算法之线性表-顺序表实现(C语言版本) 前言 数据结构与算法是一个程序员必备的 ...

  6. 数据结构与算法之线性结构链表

    数据结构与算法之线性结构链表 这一篇文章主要介绍的是通过java实现单链表.循环链表和双向循环链表,仅供自己复习使用,如有什么不足之处,欢迎指出. 单链表: package xianxingjiego ...

  7. 数据结构与算法之线性表(超详细顺序表、链表)

    原创公众号:bigsai 文章已收录在 全网都在关注的数据结构与算法学习仓库 欢迎star 前言 通过前面数据结构与算法基础知识我么知道了数据结构的一些概念和重要性,那么我们今天总结下线性表相关的内容 ...

  8. 《数据结构与算法》——线性表顺序存储结构的插入与删除

    什么是线性表? 线性表是最基本.最简单.也是最常用的一种数据结构.线性表(linear list)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列. 线性表中数据元素之间的关系是一对 ...

  9. 实验一 线性表的顺序存储与实现_程序员:数据结构与算法,线性表介绍

    线性表 线性表(list):零个或多个数据元素的有限序列. 举个例子:一个班的小朋友,一个跟着一个排队,当中的每个小朋友都知道他前面的是谁,后面的是谁,如同一根线把他们串联起来.就可以称之为线性表. ...

最新文章

  1. docker远程访问TLS证书认证shell
  2. 暮色森林模组_我的世界暮色森林mod全攻略,尤其是Boss击杀顺序,一定要牢记...
  3. C语言运算符优先级 (备忘)
  4. 台式计算机计量单位,计算机的计量单位以及常见的数据类型
  5. MFC导出对话框类DLL的实现
  6. 2.3线性表的链式存储和运算—双向链表
  7. aesmiyao php_PHP使用AES,ECB模式块和PKCS5Padding生成对称密钥
  8. 学习 Spring Boot:(二十九)Spring Boot Junit 单元测试
  9. 游戏服务器架构-设计模式之发布订阅模式
  10. AttemptID:attempt_1557891872692_0001_r_000000_0 Timed out after 3600 secs
  11. Spacecom:将和信威集团在30天内决定新的收购协议
  12. 面向对象--选课系统作业
  13. android getpost代码
  14. 局域网聊天服务器(openfire)安装与配置
  15. 围棋智能机器人阿法狗,阿尔法狗机器人围棋
  16. Hexo添加小部件(Butterfly主题) 日历
  17. 杨过最后达到了独孤求败的什么境界, 其实金庸在书中已说明
  18. 用FAI制作debian自动安装盘
  19. seo和sem是什么意思
  20. 图片验证码、阿里云短信发送和验证的逻辑

热门文章

  1. @Scheduled cron表达式
  2. C# List集合求交集
  3. win10家庭版如何开启组策略
  4. Ubuntu关闭防火墙
  5. bat脚本更新本地Git仓库
  6. Android开发笔记(一百六十三)高仿京东的沉浸式状态栏
  7. ubuntu16.04 虚拟机装机后常用操作
  8. redis学习之redis的安装和简介
  9. Eclipse离线安装Emmet插件----web开发者绝对熟悉的插件之一
  10. 手机端的1px细线问题