注意定义的函数的顺序,后面调用前面 不能前面调用后面

/*顺序存储结构*/
#include <stdio.h>
#include <stdlib.h> //pause 的头文件
#include <time.h> // 使用当前时钟做种子#define OK    1
#define ERROR 0
#define TRUE  1
#define FALSE 0
#define MAXSIZE 20 //存储空间最大分配量
#define LIST_INITSIZE 5
typedef int Status;//Status 是函数的类型,其值是函数结果状态代码 如OK
typedef int ElemType;//ElemType类型根据实际情况定/*顺序存储结构*/
/**
顺序存储结构的三个属性
1. 存储空间的起始位置:数组data,其存储位置就是存储空间的存储位置
2. 线性表的最大存储容量 数组长度MaxSize
3. 线性表当前长度 length
*/
typedef struct Node
{ElemType data[MAXSIZE];//数组存储数据元素,最大值为MAXSIZEint length;//线性表当前长度
}SqList; //别名/*初始化*/
Status InitList_Sq(SqList *L)
{int k;// 初始化随机化函数srand((unsigned)time(NULL));L->length = LIST_INITSIZE;for(k=0;k<L->length;k++){L->data[k] = rand();}return OK;
}/**初始条件:顺序线性表L已存在,1<=i<=ListLength(L)操作结果:用e返回L中第i个数据元素的值
*//*获取第i个元素*/
Status GetElem(SqList L,int i,ElemType *e)
{// 判断i是否越界if(L.length==0||i<1||i>L.length){return ERROR;}*e = L.data[i-1];printf("第%d个元素的值为%d\n\n",i,*e);return OK;
}/**插入操作1. 插入位置的合理性2. 数组容量是否充足(抛出异常/增加容量)3. 元素插入4. length++
*/
Status ListInsert(SqList *L,int i, ElemType e)
{int k;//用于向后推移的位置变量// 判断是否越界if(L->length>=MAXSIZE||i<1||i>L->length+1){return ERROR;}if (i!=L->length){// 将第i个元素及其之后的元素向后移动一位for(k=L->length-1;k>=i-1;k--){L->data[k+1] = L->data[k];}}L->data[i-1] = e;L->length++;return OK;
}/**删除元素1. 判断删除位置的合理性2. 取出删除元素3. 移动元素4. 表长--*/
Status ListDelete(SqList *L,int i,ElemType *e)
{int k;if (L->length==0||i<1||i>L->length){return ERROR;}*e = L->data[i-1];// 删除后前移一位if (i!=L->length){for(k=i-1;k<L->length-1;k++){L->data[k]=L->data[k+1];}}L->length--;return OK;
}/*输出*/
void PrintList(SqList L)
{int i; // 用于循环遍历printf("开始输出\n");for (i = 0; i < L.length; i++){printf("%d ",L.data[i]);}printf("\n输出结束\n\n");
}
void main(void){SqList L;int k;// 用于循环遍历ElemType *e;e = (ElemType *)malloc(sizeof(ElemType));// 初始化InitList_Sq(&L);//输出测试PrintList(L);// 获取测试GetElem(L,5,e);// 插入测试ListInsert(&L,6,32);ListInsert(&L,7,7);PrintList(L);// 删除测试ListDelete(&L,5,e);PrintList(L);system("pause");
}

【数据结构】顺序存储结构相关推荐

  1. 数据结构和算法:(3)3.1线性表的顺序存储结构

    -----------------------1.线性表基础操作------------------------ 线性表:(List)由零个或多个数据元素组成的有限序列. 首先他是一个序列,元素之间是 ...

  2. 数据结构(二):线性表包括顺序存储结构(顺序表、顺序队列和顺序栈)和链式存储结构(链表、链队列和链栈)...

    还记得数据结构这个经典的分类图吧: 今天主要关注一下线性表. 什么是线性表 线性表的划分是从数据的逻辑结构上进行的.线性指的是在数据的逻辑结构上是线性的.即在数据元素的非空有限集中 (1) 存在唯一的 ...

  3. 《数据结构》c语言版学习笔记——线性表的顺序存储结构

    线性表的顺序存储结构 第一章 线性表的顺序存储结构 文章目录 线性表的顺序存储结构 前言 一.顺序存储结构的建立 1.条件 2.代码 二.顺序存储结构的获得元素 1.条件 2.代码 三.顺序存储结构的 ...

  4. python顺序结构实验报告_Python 数据结构 之 串 的顺序存储结构

    本文所采用的数据结构模板为 <数据结构教程>C语言版,李春葆.尹为民等著. 改篇所涉及到的是 串 的顺序存储结构. 用Python仿照C语言来实现. 代码地址: 串 的顺序存储结构: # ...

  5. 【Java】 大话数据结构(1) 线性表之顺序存储结构

     本文根据<大话数据结构>一书,实现了Java版的顺序存储结构. 顺序存储结构指的是用一段地址连续的存储单元一次存储线性表的数据元素,一般用一维数组来实现. 书中的线性表抽象数据类型定义如 ...

  6. 数据结构之线性表之顺序存储结构(3)

    1 前言 经过前两张的理论基础,我相信大家都能简单的明白了数据结构和算法一些常用的概念了,从今天开始我们开始学习数据结构中线性表,一起叩响数据结构的大门. 2 详述 线性表(List):零个或者多个数 ...

  7. 第三章 数据结构 线性表的逻辑结构 和 线性表的顺序存储结构,链式存储结构

    文章目录 线性表的特点 引用 集合与线性表的区别在于元素是否可以重复. 线性表的顺序存储结构 顺序存储的优缺点: 一维数组来表示顺序表的数据存储区域. 线性表的链式存储结构 链式存储的优缺点 线性表的 ...

  8. 数据结构(C语言第二版)严蔚敏编,数据结构电子教材,线性表,栈,队列,顺序存储结构,初始化,入栈,出栈,入队,出队,c++

    前言 提示:本篇文章收录严蔚敏编写的数据结构C语言版本 简单介绍一下顺序表,顺序栈,循环队列,的顺序存储结构之间的区别 代码参考严蔚敏编写的<数据结构>,二维码动态演示可扫码可观看. - ...

  9. 2-1-单链表顺序存储结构-线性表-第2章-《数据结构》课本源码-严蔚敏吴伟民版...

    课本源码部分 第2章  线性表 - 单链表顺序存储结构 --<数据结构>-严蔚敏.吴伟民版        ★有疑问先阅读★ 源码使用说明  链接☛☛☛ <数据结构-C语言版>( ...

  10. 数据结构严蔚敏C语言版—线性表顺序存储结构(顺序表)C语言实现相关代码

    数据结构严蔚敏C语言版-线性表顺序存储结构(顺序表)C语言实现相关代码 1.运行环境 2.准备工作 1)项目构建 1>新建一个SeqList项目 2>新建两个文件Sources和Heade ...

最新文章

  1. spark SQL学习(综合案例-日志分析)
  2. jquery中offset和position的区别
  3. 爬虫——基本库的使用
  4. Bellman-Ford算法——为什么要循环n-1次?图有n个点,又不能有回路,所以最短路径最多n-1边。又因为每次循环,至少relax一边所以最多n-1次就行了!...
  5. python将数字转变为中文读法-Python转换数字到中文大写格式
  6. nginx 域名配置_nginx 一个域名配置多个vue项目
  7. gitlab 如何关闭force push
  8. HDU 6096 AC自动机
  9. MUI框架 按钮点击响应不好的问题解决办法
  10. 编译在arm版本的Valgrind-转
  11. 水箱建模最小二乘法_北师大版小学数学下册五年级第四单元长方体(二)整理复习电子课本练习同步教学视频...
  12. 【语音识别】基于matlab DWT算法0~9数字语音识别【含Matlab源码 1726期】
  13. 基于大数据的个性化推荐系统
  14. Git | git的简单使用教程
  15. AE学习的艰难困苦历程
  16. 性能测试、操作系统优化对性能测试的影响,以及如何优化操作系统
  17. 天宇,snapseed,第四课,风光照片调整
  18. Python爬虫-面向对象-《传闻中的陈芊芊》豆瓣热评
  19. 从零开始制作人脸表情的数据集
  20. 浅谈电气火灾监控系统在煤矿高层公寓中的应用分析

热门文章

  1. 什么是Ⅰ类、Ⅱ类、Ⅲ类银行账户?秒懂!
  2. 贝莱德集团CEO劳伦斯·芬克: 伟大的公司,都有一个长期战略
  3. 袁玉玮:简介人工智能在基金界的应用现状 (二)卖方交易员被冲击
  4. 技术人 | 是架构师,也是工作中的“厨师”
  5. 埃森哲《技术展望2021》(中文版)
  6. 张鹏程:7月24日阿里云上海峰会弹性计算大神
  7. 【大云制造】大云运营管理平台V1.4发布——不忘初心,砥砺前行,为了创造无限的价值!...
  8. 分屏如何保持运行状态_如何提升心理素质,在比赛中保持更好的状态
  9. 【优化算法】麻雀搜索优化算法(SSA)【含Matlab源码 1288期】
  10. 【TSP】基于matlab粒子群算法Hopfield求解旅行商问题【含Matlab源码 224期】