邻接矩阵的优先遍历
考研好痛苦,情绪不稳定,快(快速排序)些(希尔排序)选(选择排序)一堆(堆排序)朋友来聊天吧,我这样记的,其余的都是稳定排序
B:递归算法改为非递归算法不是采用队列做辅助结构,而是栈;
D:二分查找平均时间复杂度是O(logn),只有在最坏的情况下才是O(n),所以通常情况下是快于顺序查找,但是不能绝对的说二分查找就一定优于顺序查找,在最坏的情况下是不优于顺序查找的。
A中线性表的顺序存储结构中逻辑顺序与物理顺序总是一致的,但链式存储结构却不是,
B:两种存储结构没有优劣之分,只是看在什么情况下适合哪种存储结构。对于经常插入或删除的
适合选择链式存储,经常查找的适合顺序存储。
线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。
二维数组是每个元素都为顺序表的顺序表 .
由此可以看出二维数组的存储是线性存储。
假设栈初始为空,将中缀表达式
转换为等价后缀表达式的过程中,当扫描到f时,栈中的元素依次是 ()
基本概念:
在中缀变后缀时,操作数的顺序不会发生变化,只有运算符的顺序可能发生变化。同时又没有括号。所以在转换的过程中,只要碰到操作数,可以直接输出,而遇到运算符和括号进行相应的处理即可。
转换原则如下:
1.从左到右读取一个中序表达式。
2.若读取的是操作数,则直接输出。
3.若读取的是运算符,分三种情况。
A.该运算符为左括号( ,则直接存入堆栈。
B.该运算符为右括号),则输出堆栈中的运算符,直到取出左括号为止。
C.该运算符为非括号运算符,则与堆栈顶端的运算符做优先权比较,若较堆栈顶端运算符高或者相等,则直接存入堆栈;若较堆栈顶端运算符低,则输出堆栈中的运算符。
4.当表达式已经读取完成,而堆栈中尚有运算符时,则依次序取出运算符,直到堆栈为空,由此得到的结果就是中缀表达式转换成的后缀表达式
接下来是该题解法:
1.首先 / 入栈
2.+入栈,并把/挤出栈 。此时栈中只有/
3.( 入栈。入栈时 级别最高,所以直接入栈。但是入栈后级别最低。此时栈中只有(+
4 。* 级别高于( (不懂的请看上面的基本概念)。 所以*入栈,此时栈中有*(+
5. -入栈,因为-低于*,所以-把*挤出栈,此时栈中有-(+
6.*优先级高于-,所以*直接入。所以最终栈中从上到下为 *-(+ 从下到上为+(-×
https://blog.csdn.net/qq_29542611/article/details/79340112
网友评论