预览加载中,请您耐心等待几秒...
1/2
2/2

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

数据结构试验三 选择题: 1、设abcdef以所给的次序进栈,若在进栈操作时,允许退栈操作,则下面得不到的序列为()。 A.fedcbaB.bcafedC.dcefbaD.cabdef 2、若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pN,若pN是n,则pi是()。 A.iB.n-iC.n-i+1D.不确定 3、设计一个判别表达式中左,右括号是否配对出现的算法,采用()数据结构最佳。 A.线性表的顺序存储结构B.队列C.线性表的链式存储结构D.栈 4、用链接方式存储的队列,在进行删除运算时()。 A.仅修改头指针B.仅修改尾指针C.头、尾指针都要修改D.头、尾指针可能都要修改 5、递归过程或函数调用时,处理参数及返回地址,要用一种称为()的数据结构。 A.队列B.多维数组C.栈D.线性表 6、假设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为()。 A.(rear-front+m)%mB.rear-front+1C.(front-rear+m)%mD.(rear-front)%m 7、若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少?() A.1和5B.2和4C.4和2D.5和1 8、最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是()。 A.(rear+1)MODn=frontB.rear=front C.rear+1=frontD.(rear-l)MODn=front 9、栈和队列的共同点是()。 A.都是先进先出B.都是先进后出 C.只允许在端点处插入和删除元素D.没有共同点 10、设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是e2,e4,e3,e6,e5,e1则栈S的容量至少应该是()。 A.6B.4C.3D.2 判断题: 栈和队列都是限制存取点的线性结构。() 消除递归不一定需要使用栈,此说法。() 任何一个递归过程都可以转换成非递归过程。() 两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。() 名词解释: 栈 队列 循环队列 简答题: (1)什么是递归程序? (2)递归程序的优、缺点是什么? (3)递归程序在执行时,应借助于什么来完成? (4)递归程序的入口语句、出口语句一般用什么语句实现? 算法题: 数值转换:将十进制数N转换为r进制的数。 文字编辑器:用户输入一行字符,如入”#”表示删除前面一个字符,”@”删除一行“*输入结束”。 括号匹配判断算法包括[](),可以相互嵌套,必须成对出现。 4.请利用两个栈S1和S2来模拟一个队列。 已知栈的三个运算定义如下:PUSH(ST,x):元素x入ST栈;POP(ST,&x):ST栈顶元素出栈,赋给变量x;Sempty(ST):判断ST栈是否为空。 那么如何利用栈的运算来实现该队列的三个运算:enqueue:插入一个元素入队列;dequeue:删除一个元素出队列;queue_empty:判断队列为空。(请写明算法的思想及必要的注释,伪代码实现即可) 下面几道题目虽然简单主要是利用简单的题目来理解递归这个思想 5用递归和非递归实现阶乘计算n!。 6用递归和非递归实现折半查找。 7不带头结点的单链表逆序的递归和非递归写法。 8递归和非递归实现字符串的反向输出。 9.将一整数逆序后放入一数组中(要求递归实现) 10.递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)