计算机软件基础——存储结构(1)

线性表:具有相同线性结构的数据元素所构成的一个有限的序列(反应逻辑关系)

  。先看逻辑结构,再看存储结构

 研究方式:

      逻辑结构

      存储结构

      常用算法

一、线性表及其顺序存储结构

顺序存储结构:一组连续的存储单元依次存储线性表的每个元素(eg;数组)

特点:逻辑相邻,物理相邻

  * 采用顺序存储结构的线性表通常称为顺序表  

(一)、线性表的基本运算操作:

1、初始化,设置一个空表

2、求长度,返回表中的元素个数

3、求序号为 i 的元素值

4、求值为x的元素值在表中的位置

5、在第 i 个(指定)元素前面插入元素x

6、删除表中的第 i 个元素 ;删除给定值x的元素

7、取出 ai 元素的前趋与后继

8、合并、拆分、复制、排序、逆转、判空等

Zu:线性表的序号统一从 1 开始,数组下标是从0开始。

(二)、插入运算的异常处理:

1、存储空间已满时为 上溢 错误,不能插入,算法结束

2、i > n 时,最后一个元素之后插入

3、i < 1 时,第一个元素之前插入(n代表有效位数) 

(三)、删除运算的异常处理:

1、i  < 1 或 i > n 时,认为删除无效

2、线性表为空时为 下溢 错误,不能删除,算法结束

(四)、顺序表操作注意事项

1、表结构的定义:(即存储结构的定义)

  。可以定义为 局部 、全局变量,也可以动态申请空间。

  。最大表空间的定义。

2、表溢出和非法位置的反馈提示

3、节点移动,长度修改

 

二、栈(顺序结构)

1、定义:限定在一端进行插入删除的线性表。

栈逻辑特征:FILO  first in last out

      LIFO  last in first out

2、概念 : top     bottom     push   pop

     栈顶     栈底    入栈   出栈

一般,允许插入删除操作的一端称为栈顶,因此,栈顶的位置是动态变化的。

栈用数组表示,(数组的下标小对应低地址)。

3、影响栈的算法的要素:

1)、数组的隐含属性(起始下标、元素个数)

2)、栈的生长方向(低——>高;高——>低)

3)、栈顶、栈底的定义形式

 

4、顺序栈的基本运算

1)、初始化空栈

2)、判断栈空( *top = 0),判断栈满( *top = m)

3)、入栈( * top =  *top + 1 ;),退栈

4)、复制栈顶元素

 

5、栈的应用

逆序、重整序、回溯问题求解、递归过程的实现。

  

7、应用

1)、中缀表达式

设立两个堆栈:

      OPND:存操作数

      OPTR:存操作符

2)、背包问题

 

posted @ 2019-10-08 15:21  BLAGT2  阅读(362)  评论(0编辑  收藏  举报