实用数据结构电子教案第二章数组与线性表.ppt
- xiaolan118个人认证 |
- 2021-08-05 发布|
- 1.86 MB|
- 58页
实用数据结构电子教案第二章数组与线性表;第二章 数组与线性表 ;要 求 熟练掌握以下内容:
线性表的基本运算
堆栈的特征、基本运算并能设计简单算法
队列、循环队列的特征、基本运算并能设计简单算法 了解以下内容:
线性表运算时间复杂性分析
堆栈、队列实际应用 ;第二章目录;2.1.1 数组;2.1.2 数组的顺序存储结构 ;1. 一维数组寻址公式;2. 二维数组寻址公式;定义一A[2][3]数组,对应的矩阵如下: 数组元素A[1][2],其下标i=1,j=2,故它前面已经有i=1行,每行有3个元素,另外本行有j=2个元素,所以在元素A[1][2]之前,本数组已有5个元素。 ;3. 三维数组寻址公式;2.2.1 线性表(Linear List) ;线性表在计算机内存中采用各元素顺序存储的方式,这种存储结构叫做向量。
每个线性表元素叫做这个向量的一个分量。
如果已知线性表第一个元素的地址和每个元素占用的存储单元数,由任一元素的序号就可以计算出该元素在内存中的地址。
在编程时以一维数组表示线性表最简单,用的也最普遍。 ;2.2.2 线性表的运算;1. 数据元素的插入(insert) ;插入函数 ;插入函数分析;2. 数据元素的删除(Delete) ;删除函数 ;删除函数分析;3. 算法的时间复杂性 ;2.3.1 堆栈(Stack) ;堆栈的表示;本例中top=4 ;1. 入栈(push) ;入栈函数 ;2. 出栈(Pop) ;出栈函数;2.3.2 堆栈的应用 ;函数嵌套调用A1调用A2,A2调用A3时的返回地址在堆栈中的情况如右图所示。 ;2. 堆栈在表达式计算中的应用 ;算术表达式的不同运算符有不同的运算优先顺序,如,在没有括号时,乘除运算(*或/)要比加减运算(+或-)优先进行。
下面用一个简单的例子说明编译系统在处理算术表达式时,是如何应用堆栈这种数据结构的。
假定表达式的运