线性表:相同特性的数据元素的一个有限序列。
线性表的长度:n 序列中所含元素个数
空表:不包含任何元素
前驱:ai-1是ai的前驱
后继:ai+1是ai的后继
表头元素:a1
表尾元素:an

线性表 元素之间一对一的线性结构
表内元素可以用二元组表示L=(D,R)
D是元素的存储方式
R是元素之间前驱后继的关系

ADT
数据对象 存储方式、格式
数据关系 元素之间的前驱后继关系
数据操作 (1)初始化:构造一个空表
(2)销毁:释放线性表的内存空间
(3)判断表是否为空:若为空则返回为真否则为假
(4)求线性表长度:返回L中元素个数
(5)输出线性表:当L不为空时,顺序的显示L中各个节点的值域
(6)求线性表中指定位置的元素:用e返回L中第i个元素
(7)查找线性表中的元素:返回L中第1个与e相等的序号,找不到则返回0
(8)插入元素:在L中的第i个位置插入元素
(9)删除元素:在L中的第i个位置删除元素

进阶:线性表的合并
LC<-LA
LC<-存在于LB但在LA中不存在的元素

顺序存储结构——顺序表
:把线性表中的所有元素按照其逻辑顺序依次存储到从计算机存储器中指定存储位置开始的一块连续的存储空间中。
解决方式——数组
定义MAXSIZE 预留一些冗余空间
占用空间:n*sizeof(elemtype)
线性表长度:n

线性表:逻辑结构
顺序表:存储结构 内存中是连续的

具体解决问题时:结构体的嵌套

顺序表存储:
data域%length域

物理序号:从0开始
逻辑序号:从1开始

指针法
(1)定义指针类型 Sqlist *L
(2)对指针分配空间 ,必须分配空间否则就是野指针 L=malloc(..);
(3)操作定义结构体中的元素时用-> 如L->length

变量法
(1)直接定义变量
(2)操作结构体中元素时用.进行操作 如 L.length

线性表实现及其CODE

定义

(1)定义data域 //注意定义时需要在
(2)定义length域

创建线性表:

(1)首先为变量分配空间 有空间去存储数据
(2)将数据赋值给传入的线性表的data域中
(3)为线性表的length域赋值

初始化线性表

(1)new或者malloc 分配内存空间
(2)为length赋0

销毁线性表

malloc - free
new - delete[]

判断是否为空表

bool 判断length是否为0

求线性表长度

返回length即可

输出线性表

当线性表不为空时,顺序的显示L中各个元素的值

求某个位置的数据元素值

返回L中第i(1<=i<=length)个元素的值,放在e中

按元素值查找其位置

查找第一个值域与e相等的元素的逻辑位序。

插入元素

在顺序表上第i个位置上插入新的元素e
(1)将顺序表原来的第i个及其以后的元素后移一个位置
(2)将新元素插入到位置i中
(3)顺序表长度+1

删除元素

(1)将线性表第i个元素以后的元素均向前移动一个位置,覆盖第i个元素,达到删除该元素的目的
(2)顺序表长度减一

*注意逻辑位序转化为物理位序

include

include

define MAXSIZE 1000

//定义顺序表
typedef struct
{
//data域
int data[MAXSIZE];
//length域
int length;

}Sqlist;

//创建线性表
void CreateList(Sqlist *&L,int a[],int n)
{
int i;
L=new Sqlist;
//L->name=”link”;
L->length=n;
for(i=0;i

复习:线性表——顺序表相关推荐

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

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

  2. 线性表-顺序表的基本操作

    线性表的定义和特点 线性表:由n(n≥0)个数据特性相同的元素构成的有限序列 线性表中元素的个数n(n≥0)称为线性表的长度 空表:n=0 对于非空的线性表或线性结构,特点为: 存在唯一的一个被称作& ...

  3. 线性表→顺序表→链表 逐个击破

    一. 线性表 1. 前言 线性表,全名为线性存储结构.使用线性表存储数据的方式可以这样理解,即 " 把所有(一对一逻辑关系的)数据用一根线儿串起来,再存储到物理空间中 ".这根线有 ...

  4. 线性表---顺序表链表

    一.线性表 1.线性表中的元素是一对一的关系,除了第一个与最后一个元素之外其他数据元素都是首尾相连的. 如果是一对多就用树来表示,如果是多对多就用网状来表示. 2.线性表的两种存储结构 顺序表:用顺序 ...

  5. 线性表----顺序表

    线性表的定义 线性表是具有相同数据类型的n个数据元素的有限序列, 逻辑特性 除第一个元素外,每个元素只有一个前驱,除最后一个元素外,每个元素都有一个后继 物理结构 线性表的存储结构有顺序存储结构和链式 ...

  6. 线性表—顺序表-顺序表基本运算的实现

    基本运算--初始化线性表 lintList 目标是构造出一个空的线性表 分配空间后,将length成员设置为0 对L的作用会传递回去 基本运算--销毁线性表 DestroyList C free() ...

  7. 线性表顺序表模板 纯本人手工创造

    /* ***********************************************Author :mubaixuCreated Time :2015-12-08 20:45:05Fi ...

  8. 数据结构一线性表 (顺序表、单链表、双链表)

    版权声明:本文为openXu原创文章[openXu的博客],未经博主允许不得以任何形式转载 文章目录 1.线性表及其逻辑结构 1.1 线性表的定义 1.2 线性表的抽象数据类型描述 2.线性表的顺序存 ...

  9. 线性表☞顺序表篇(7000字细致入微讲解)

     个人主页:欢迎大家光临-->沙漠下的胡杨   各位大帅哥,大漂亮  如果觉得文章对自己有帮助  可以一键三连支持博主  你的每一分关心都是我坚持的动力   ☄: 本期重点:线性表中的顺序表   ...

最新文章

  1. HDU 5988 最小费用流
  2. mr图像翻转的原因_CSS图片翻转例子
  3. requestWindowFeature()的应用
  4. [C++] 井字棋游戏源码
  5. SAP Spartacus layout设计原理
  6. discuz!5.5.0安装方法及常见问题解决
  7. 2021年广西艺术高考成绩查询,2021年广西美术高考成绩查询网址:https://www.gxeea.cn/...
  8. 全球最大的多晶硅制造商保利协鑫去年营收220亿元 售电业务表现抢眼
  9. STM32工作笔记0090---ADC基本原理-M3
  10. Open3d之坐标变换
  11. 29. 数组中出现超过一半的数字(C++版本)
  12. 消费滚动滴log日志文件(flume监听,kafka消费,zookeeper协同)
  13. R 实现熵权法计算权重
  14. centos yum
  15. CAD画虚线怎么调比例?CAD画虚线教程
  16. linux hci0 进程,教程 - 在 Azure Stack HCI 上的 AKS 中部署 Linux 应用程序 - AKS-HCI | Microsoft Docs...
  17. 游戏评测HTML5网站模板是一款适合游戏视频 游戏评测 游戏介绍网站模板。
  18. 浏览器中显示PPT的展示效果
  19. HTML图片不能上下铺满屏幕_多张图片的PPT,如何排版的更有创意?
  20. Latex 调整行距

热门文章

  1. [翻译]Scott Mitchell 的ASP.NET 2.0数据教程之十二:在GridView控件中使用TemplateField
  2. python 图像分析 边框_Python 去除图片纯色边框(qbit)
  3. 容器映像_容器映像中的内容:应对法律挑战
  4. 腾讯ai开放平台 手册_创建手册以实现大规模开放
  5. (4)vue.js 基础语法
  6. es6 实例:消除魔术字符串
  7. linux追加SQL结果到文件,RAC环境下误操作将数据文件添加到本地存储
  8. param参数服务器
  9. 什么是php的ast结构,什么是AST?Vue源码中AST语法树的解析
  10. exe msdt 无法上网_软网推荐:可装EXE程序的ReactOS