一些基本概念和术语:
数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合数据元素:是组成数据的,有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录
数据项:一个护具元素可以有若干个数据项组成,是数据不可分割的最小单位
数据对象:是性质相同的数据元素的集合,是数据的子集
数据结构:是相互之间存在一种或多种或多种特定关系的数据元素的集合。
逻辑结构:是指数据对象中数据元素之间的相互关系。
有以下四种关系: ①集合结构:集合结构中的数据元素除了同属于一个集合外,他们之间没有任何关系
②线性结构:线性结构中的数据元素之间是一对一的关系
③树形结构:树形结构中的数据元素之间存在一种一对多的层次关系
④图形结构:图形结构中的数据元素是多对多的关系
物理结构:是指数据的逻辑结构在计算机中的存储形式,分别是顺序存储和链式存储
顺序存储:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的
链式存储:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续 的
线性表:(元素有a1-an)
1.线性表的定义:零个或多个数据元素的有限队列
除了第一个数据元素没有前驱和末尾元素没有后继外,其他元素都有一个前驱和一个后继。
2.线性表的顺序存储结构
指的是用一段地址连续的存储单元一次存储线性表的数据元素。示意图如下:
顺序存储的结构代码:
插入算法的思路:
插入位置不合理,抛出异常;
若线性表长度大于等于数组长度,则抛出异常或动态增加容量;
插入元素填入i处,i处后面的每个元素后移一位;
插入位置不合理,抛出异常;
若线性表长度大于等于数组长度,则抛出异常或动态增加容量;
插入元素填入i处,i处后面的每个元素后移一位;
表长+1
代码举例:
删除操作思路:
删除位置不合理,抛出异常;
取出删除元素;
从删除位置开始遍历到最后一个元素,分别将他们向前移动一个位置;
取出删除元素;
从删除位置开始遍历到最后一个元素,分别将他们向前移动一个位置;
表长-1
代码举例:
优点:1.无须为表示表中元素之间的逻辑关系而增加额外的存储空间
2.可以快速的存取表中任意位置的元素
缺点:1.插入和删除操作需要移动大量元素
2.当线性表长度变化较大时,难以确定存储空间的容量
3.造成存储空间的“碎片”