数据结构课上笔记7

介绍栈和队列基本概念和用法。

 

设输入序列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一定是这个顺序。

反模拟入队,每次只能在两边出元素。

©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页