0136 栈、队列和数组2

目录

3.栈、队列和数组

3.3栈和队列的应用

3.4数组和特殊矩阵

部分习题 


3.栈、队列和数组

3.3栈和队列的应用

0136 栈、队列和数组2_第1张图片

 

 

0136 栈、队列和数组2_第2张图片 

0136 栈、队列和数组2_第3张图片 

 


3.4数组和特殊矩阵

0136 栈、队列和数组2_第4张图片

0136 栈、队列和数组2_第5张图片


部分习题 

1.假设栈初始为空,将中缀表达式a/b+(c*d-e*f)转化为等价的后缀表达式过程中,当扫描到f时,栈中元素依次是()

A.+(*-        B.+(-*        C./+(*-*        D./+-*

2.将n阶上三角矩阵A按列优先压缩存放在一维数组B[1...n(n+1)/2+1]中,则存放到B[k]中的非零元素a_{ij}(1<=i,j<=n)的下表i,j,k的对应关系是()

A.(j-1)(2n-j+1)/2+i-j        B.(j-1)(2n-j+2)/2+i-j+1

C.(j-1)(2n-j+2)/2+i-j        D.(j-1)(2n-j+1)/2+i-j+1

3.适用于压缩存储稀疏矩阵的两种存储结构是()

A.三元组表和十字链表        B.三元组表和邻接矩阵

C.十字链表和二叉链表        D.邻接矩阵和十字链表

4.设有一个12*12的对称矩阵M的上三角部分元素m_{ij}(1<=i<=j<=12)按行优先存入C语言的一组数组N中,元素m_{66}在N中的下标是()

A.50        B.51        C.55        D.66


1.B

后缀表达式 当前扫描元素 动作说明
a a加入后缀表达式
a / /入栈
/ a b b加入后缀表达式
/ ab + +优先级低于栈顶/,弹出/
ab/ + +入栈
+ ab/ ( (入栈
+( ab/ c c加入后缀表达式
+( ab/c * 栈顶为(,*入栈
+(* ab/c d d加入后缀表达式
+(* ab/cd - -优先级低于栈顶*,弹出*
+( ab/cd* - 栈顶为(,-入栈
+(- ab/cd* e e加入后缀表达式
+(- ab/cd*e * *优先级高于-,*入栈
+(-* ab/cd*e f f加入后缀表达式

2.B

按列优先存储,元素a_{i,j}前面有j-1列,共有n+(n-1)+...+(n-j+2)=(2n-j+2)(j-1)/2个元素,元素a_{i,j}在第j列是第i-j+1个元素,数组B下标从1开始,k=(j-1)(2n-j+2)/2+i-j+1

3.A

三元组表的结点存储了行、列、值三种信息,是主要用来存储稀疏矩阵的一种数据结构,十字链表将行单链表和列单链表结合起来存储稀疏矩阵

4.A

数组N下标从0开始,第一个元素m_{1,1}对应存入n_{0},矩阵M的第一行有12个元素,第二行有11个元素,第三行有10个元素,第四行9个元素,第五行8个元素,所以m_{66}是第12+11+10+9+8+1=51个元素,下标为50

 

你可能感兴趣的:(数据结构与算法的学习,笔记)