线性表之简介及顺序表
线性表的本质
线性表的定义:线性表是具有相同类型的 n( ≥0)个数据元素的有限序列。((a1, a2, …, an)ai 是表项,n 是表长度。)
线性表(List)是零个或多个数据元素的集合。
线性表中的数据元素之间是有顺序的。
线性表中的数据元素个数是有限的。
线性表中的数据元素的类型必须相同。
线性表的性质:
1. a0为线性表的第一个元素,只有一个后继 a;
2. n为线性表的最后一个元素,只有一个前驱;
3. 除a0和an外的其它元素ai,既有前驱,又有后继;
4. 线性表能够逐项访问和顺序存取。
线性表可用于描述“队列类型”关系的问题。
在稍复杂的线性表中,一个元素可以由若干个数据项组成。在这种情况下常把元素称为记录,含有大量记录的线性表又称文件。
线性表的相关操作
1.创建线性表;
2.销毁线性表;
3.清空线性表;
4.将元素插入线性表;
5.将元素从线性表中删除;
6.获取线性表中某个位置的元素;
7.获取线性表的长度。
线性表在程序中表现为一种特殊的数据类型。
线性表的操作在程序中的表现为一组函数。
线性表的顺序存储结构
顺序存储定义:线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。
特点:
1. 逻辑上相邻,物理上也相邻;
2. 只要确定了首地址,可随机存取。
在C语言中可以用一维数组来实现顺序存储结构。
1.存储空间的起始位置:数组node;
2.线性表的最大容量:数组长度MAXSIZE;
3.线性表的当前长度:length。
获取元素操作:
1.判断线性表是否合法;
2.判断位置是否合法;
3.直接通过数组下标的方式获取元素。
插入元素操作:
插入元素算法:
1.判断线性表是否合法;
2.判断插入位置是否合法;
3.把最后一个元素到插入位置的元素后移一个位置;
4.将新元素插入;
5.线性表长度加1;
删除元素操作:
删除元素的算法:
1.判断线性表是否合法;
2.判断删除位置是否合法;
3.将元素取出;
4.将删除位置后的元素分别向前移动一个位置;
5.线性表长度减1。
线性表的顺序存储结构优点:
1.无需为线性表中的逻辑关系增加额外的空间;
2.可以快速的获取表中合法位置的元素。
线性表的顺序存储结构缺点:
1.插入和删除操作需要移动大量元素;
2.当线性表长度变化较大时难以确定存储空间的容量。
顺序线性表代码下载地址:http://download.csdn.net/download/u014754841/10235468
线性表之简介及顺序表相关推荐
- 线性表(一)——顺序表
线性表(一) 线性表(linear list),也称有序表(ordered list),是线性结构的典型代表.数据元素之间仅具有单一的前驱和后继关系. 一.线性表的逻辑结构 1.线性表的定义 线性表简 ...
- 构建线性表的c语言代码,数据结构严蔚敏C语言版—线性表顺序存储结构(顺序表)C语言实现相关代码...
1.运行环境 这里说明一下这里所有的C语言代码都是基于code::blocks 20.03编译运行的.当然一些其他集成开发环境应该也是可以的,个人不太喜欢功能太过强大的IDE,因为那同样意味着相关设置 ...
- 用Java描述数据结构之线性表的顺序存储(顺序表),ArrayList及其方法的介绍
我们先来想一想什么是线性表? 线性表是最基本.最简单.也是最常用的一种数据结构.线性表(linear list)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列. 线性表中数据元素之 ...
- 线性表:2.线性表的顺序存储结构--顺序表及C语言实现
逻辑结构上呈线性分布的数据元素在实际的物理存储结构中也同样相互之间紧挨着,这种存储结构称为 线性表的顺序存储结构 . 也就是说,逻辑上具有线性关系的数据按照前后的次序全部存储在一整块连续的内存空间中, ...
- 线性表的顺序存储结构——顺序表
什么是线性表? 线性表简称表,是n(n>=0)个具有相同类型的数据元素的有限序列,线性表中数据元素的个数称为线性表的长度,长度为0的表称为空表. 什么是顺序表? 线性表的顺序存储结构称为顺序表. ...
- [数据结构]数据结构简介和顺序表
目录 什么是数据结构 数据结构的特性 线性表 顺序表 创建一个动态顺序表 顺序表的增删查改 尾插和尾删除 尾插 头插头删 头插 头删 任意位置的插入和删除 插入 删除 查找和打印 总结 这天,小明和小 ...
- 数据结构严蔚敏C语言版—线性表顺序存储结构(顺序表)C语言实现相关代码
数据结构严蔚敏C语言版-线性表顺序存储结构(顺序表)C语言实现相关代码 1.运行环境 2.准备工作 1)项目构建 1>新建一个SeqList项目 2>新建两个文件Sources和Heade ...
- 顺序表的实现和顺序表相关OJ题
前言: 从本篇博客开始,我们会逐渐接触一些数据结构,并且我们将会用C语言实现这些数据结构.我希望从这篇博客开始,读者能够学会画好图在写代码,代码运行出错进行自主调试来分析错误,如果你能够养成这两个良好 ...
- 数据结构与算法(2-1)线性表之顺序存储(顺序表)
顺序表用数组存储数据元素(可以是结构体数组,也可以是结构体内的元素数组),插入和删除等等也是类似数组的操作. 顺序表优势: 1.无须为表示表中元素之间的逻辑关系而增加额外的存储关系,就是直接的顺序: ...
最新文章
- 多ajax请求的各类解决方案(同步, 队列, cancel请求)
- codevs 2639 约会计划
- 深入理解Spark 2.1 Core (十):Shuffle Map 端的原理与源码分析
- 前端技巧之苹果官网效果分析
- Python爬虫--- 1.2 BS4库的安装与使用
- 洛谷 P4503 [CTSC2014]企鹅QQ 解题报告
- JSP实用教程(2)——JSP语法
- 计算机基础考试函数公式,计算机基础-excel公式考和函数.ppt
- Verilog实现38译码器
- [html] 网页打印与标准纸张换算时,cm和px是如何换算的?
- postgresql 数据库中 like 、ilike、~~、~~*、~、~*的含义
- 防用户误删除,耗费一周时间把DeleteMark标志都加上来了,所有的删除操作从“物理删除”转为“逻辑删除”
- 四.卡尔曼滤波器(EKF)开发实践之四: ROS系统位姿估计包robot_pose_ekf详解
- JS Boolean 初始值
- keras的数字图像识别
- 美剧 silicon valley
- Oracle 创建分区表操作分区表
- camunda如何监控流程执行
- 【自动聚焦】显微镜的景深
- 硬盘检测工具 HD Tune Pro
热门文章
- 大数据产品开发流程规范_华为内部资料流出!揭秘华为数据湖:3大特点、6个标准、入湖流程...
- 日期类型前后台传递格式控制注解@DateTimeFormat@JsonFormat@JSONField
- MateBook14一个多月的使用体验(开发向)
- python旋转matplotlib绘制的三维图
- 使用pickle模块打包停用词表,加快处理文本数据的速度
- 10右键闪退到桌面_windows7多用户远程桌面如何设置
- php sqlserver08001,PHP连接sqlserver2008,怎么连接指定ip地址上的数据库
- 实验吧-杂项-WTF?(python 01代码转图片)
- php接收base64图片并保存
- Spring注解解析