介绍栈和队列基本概念和用法。
设输入序列1、2、3、4,则下述序列中( )不可能是出栈序列。【中科院中国科技大学2005】
A. 1、2、3、4 B. 4、 3、2、1
C. 1、3、4、2 D.4、1、2、3
选D
我是一个个模拟来做的。
描述栈的基本型性质:
1、集合性:栈是由若干个元素集合而成,没有元素(空集)成为空栈。
2、线性:除栈顶和栈底之外,任意元素均有唯一前趋和后继。
3、运算受限:只在一端插入删除的线性表即为栈
顺序存储和顺序存取:顺序存取是只能逐个存或取结构中的元素,例如栈。顺序存储是利用一个连续的空间相继存放,例如栈可基于一维数组存放元素。
一个较早入栈的元素能否在后面元素之前出栈?如果后面元素压在它上面,就不可以了。如果后面元素未压入,它可以弹出。在其他元素前面。
栈与递归:
当在一个函数的运行期间调用另一个函数时,在运行 该被调用函数之前,需先完成三件事: 将实参等传递给被调用函数,保存返回地址(入栈); 为被调用函数的局部变量分配存储区; 将控制转移到被调用函数的入口。
从被调用函数返回调用函数之前,应该完成: 保存被调函数的计算结果; 释放被调函数的数据区; 按被调函数保存的返回地址(出栈)将控制转移到调 用函数。
多个函数嵌套调用的规则是:后调用先返回。
此时的内存管理实行“栈式管理”
队列:
在多用户计算机系统中,各个用户需要使用 CPU 运行自己的程序,它们分别向操作系统提出使用 CPU 的请求,操作系统按照每个请求在时间上的先后顺序, 将其排成一个队列,每次把CPU分配给队头用户使用, 当相应的程序运行结束,则令其出队,再把CPU分配 给新的队头用户,直到所有用户任务处理完毕。
以主机和打印机为例来说明,主机输出数据给打印 机打印,主机输出数据的速度比打印机打印的速度要快 得多,若直接把输出的数据送给打印机打印,由于速度 不匹配,显然不行。解决的方法是设置一个打印数据缓 冲区,主机把要打印的数据依此写到这个缓冲区中,写 满后就暂停输出,继而去做其它的事情,打印机就从缓 冲区中按照先进先出的原则依次取出数据并打印,打印 完后再向主机发出请求,主机接到请求后再向缓冲区写 入打印数据,这样利用队列既保证了打印数据的正确, 又使主机提高了效率。
双端队列:
某队列允许在其两端进行入队操作,但仅允许在一端进行出队操作,若元素a,b,c,d,e依次入队列后,再进行出队操作,则不可能得到的顺序是( )。
A. bacde B. dbace C. dbcae D. ecbad
解析:出队只能一端,所以abcde一定是这个顺序。
反模拟入队,每次只能在两边出元素。