欢迎光临散文网 会员登陆 & 注册

数据结构——基础8

2022-10-03 18:46 作者:技术龙的传人  | 我要投稿

例题:

解:

A中1、2出队输出,3、4、5出队入栈,5出栈输出,6出队输出,4、3出栈输出;

B中1出队入栈,2、3、4、5、6出队输出,1出栈输出;

C中1、2出队入栈,3、4、5、6出队输出,2先出栈输出,故选C;

D中1、2、3、4、5、6出队入栈,6、5、4、3、2、1出栈输出。

解:

A中右边入队1、2,左边入队3、4、5,左边出队得到序列54312

B中右边入队1、2,左边入队3,右边入队4,左边入队5,得到序列

C中左边入队1、2,右边入队3,左边入队4,右边入队5,得到序列

D中左边入队1,2左右入队都不在1旁边,故得不到序列

解:1)应该选择链式存储结构,入队和出队操作的时间复杂度为O(1)

2)队列初始状态为空

3)第一个元素入队后队列状态

4)

栈在表达式求值中的应用:

    中缀表达式:A+B*(C-D)-E/F

    后缀表达式:ABCD-*+EF/-

后缀转中缀表达式——操作数从左向右找操作符向前插入到操作数之间

AB(C-D)——>AB*(C-D)——>A+B*(C-D)——>A+B*(C-D)EF——>A+B*(C-D)E/F——>A+B*(C-D)-E/F


递归中的栈

队列在层次遍历中的应用

根结点入队
下一个左结点,先出队
入队左、右结点
出队左结点,入队子结点
出队右结点,入队子结点(先左后右)
依次类推
依次类推
子结点出队

例题:

解:a出——a

+入栈,b出——ab

+出栈(栈底+划掉),-入栈——ab+

a出,*、(、(入栈——ab+a

c出,+入栈,d出——ab+acd                     故选A

+出栈,)配对的(出栈——ab+acd+

/入栈,e出——ab+acd+e

/出栈,-入栈,f出——ab+acd+e/f

-出栈,)配对的(出栈——ab+acd+e/f-

*、-出栈,g出——ab+acd+e/f-*-g

+入栈、出栈——ab+acd+e/f-*-g+


草稿

解:先调用main()压栈,再调用打印的S1压栈,再调用s(n-1)压栈。故选A


特殊矩阵和串

    特殊矩阵的压缩算法

    

对称矩阵下三角(按行存储)

求22所在一维数组的位置(第4行第2列)a4,2=4*(4-1)/2+2-1=7

可得公式:ai,j=i*(i-1)/2+j-1

对称矩阵上三角(按列存储)

求22所在一维数组的位置(第2行第4列)a2,4=4*(4-1)/2+2-1=7

可得公式:ai,j=j*(j-1)/2+i-1


例题:

解:选A

解:选C

 

三对角矩阵
三对角矩阵

解:选B

稀疏矩阵

三元组表

a行b列有非零元素(a——>b),依次类推b行c列(b——>c)、c行无列,d行b列(d——>b),^表示空

链接表

十字链表

a行|元素位置|in|out         ——注意箭头与指向相反

    a行b列(b行指向a行),b行c列(c行指向b行),c行空,(a行指向d行)

a行b列有元素in空out有(a|^| ——>a|b| |^),

十字链表

例题:

A






数据结构——基础8的评论 (共 条)

分享到微博请遵守国家法律