一起答

全国自考数据结构导论(栈和队列)模拟试卷1

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 35. 如果希望循环队列中的元素都能得到利用,则需要设置一个标志域tag,并以tag的值为0或1来区分尾指针和头指针值相同时的队列状态是“空”还是“满”。试编写与此结构相应的入队列和出队列的算法。

  2. 33. 在栈顶指针为HS的链栈中,写出计算该链栈中结点个数的函数。

  3. 34. 设从键盘输入一整数的序列:a1,a2,a3,…an,试编写算法实现:用栈结构存储输入的整数,当ai≠一1时,将ai进栈;当ai=一1时,输入栈顶整数并出栈。算法应对异常情况(如栈满等)给出相应的信息。

  4. 32. 试写出一个判别表达式中开、闭括号是否配对出现的算法。

  5. 31. 用一个循环单链表表示队列,该队列只设一个队尾指针rear,不设队首指针。试编写算法,完成入队、出队操作。

  6. 30. 借助栈(可用栈的基本运算)来实现单链表上的逆置运算。

  7. 26. 从现实生活中举例说明栈和队列的特征。

  8. 28. 设有编号为A,B,C,D的四辆列车,顺序进入一个栈式结构的站台,试写出这四辆列车开出车站的所有可能的顺序。

  9. 25. 表达式d/(b—c)+a的后缀表达式是_______。

  10. 24. 对于栈和队列,无论它们采用顺序存储结构还是链式存储结构,进行插入和删除操作的时间复杂度都是____。

  11. 22. 已知链队列Q的头、尾指针分别是front和rear,则出队操作是:p=Q一>front;_______;free(p)。

  12. 23. 一般情况下,将递归算法转化成等价的非递归算法应该设置_______。

  13. 21. 对带有头结点的链队列lq,判定队列中只有一个数据元素的条件是_______。

  14. 20. 已知用数组sq[50]存放循环队列的元素,且头指针和尾指针分别为19和2,则该队列的当前长度为_______。

  15. 19. 判别循环队列空和满的方法有_______、_______和_______。

  16. 18. 在一个循环队列Q中,判断队空的条件为_______,判断队满的条件为______。

  17. 16. 栈的逻辑特点是_____,队列的逻辑特点是______;二者的共同点是只允许在它们的______处插入和删除数据元素;其中_________可以作为实现递归函数调用的一种数据结构。

  18. 17. 允许在一端插入,在另一端删除的线性表称为_________。插入的一端为________,删除的一端为_______。

  19. 14. 如果以链表作为栈的存储结构,则退栈操作时________。

    • A.必须判别栈是否满
    • B.判别栈元素的类型
    • C.必须判别栈是否空
    • D.对栈不作任何判别
  20. 15. 前缀表达式“一2+8/6 3”的运算结果是_________。

    • A.1
    • B.4
    • C.8
    • D.16
  21. 11. 若链队列的队头指针和队尾指针分别为front和rear,则从队列中删除一个结点的操作是_______。

    • A.p=front;rear=p一>next;free(p);
    • B.p=rear;front=p;free(p);
    • C.p=front;front=P一>next;free(p);
    • D.p=rear;front=P一>next;free(p);
  22. 12. 输入序列为ABC,要变为CBA,经过的栈操作为_______。

    • A.push,pop,push,pop,push,pop
    • B.push,push,push,pop,pop,pop
    • C.push,push,pop,pop,push,pop
    • D.push,pop,push,push,pop,pop
  23. 13. 设有一顺序栈S,元素S1,S2,S3,S4,s5,S6依次进栈,如果6个元素出栈的顺序是s2,s3,S4,S6,s5,s1,则栈的容量至少应该是_________。

    • A.2
    • B.3
    • C.4
    • D.5
  24. 10. 设数组A[0,m]作为循环队列sq的存储空间,front为队头指针,rear为队尾指针,则执行入队操作的语句是_____。

    • A.sq.front=(sq.front+1)%m
    • B.sq.front=(sq.front+1)%(m+1)
    • C.sq.rear=(sq.rear+1)%m
    • D.sq.rear=(sq.rear+1)%(m+1)
  25. 9. 若以数组a[k]存放循环队列的元素,则当循环队列满时,队列中有______个元素。

    • A.2k
    • B.k+1
    • C.k
    • D.k一1
  26. 7. 假定一个循环队列的队头和队尾指针分别为P和q,则判断队空的条件为_________。

    • A.p==0
    • B.p+1==q
    • C.q+1==p
    • D.p==q
  27. 8. 若以数组a[8]存放循环队列的元素,且当前队尾指针rear的值为0,队头指针front的值为3。当从队列中出队两个元素,再人队一个元素后,rear和front的值分别为_______-。

    • A.7和1
    • B.1和7
    • C.5和1
    • D.1和5
  28. 5. 设有一顺序栈已含3个元素,如下图所示,元素a4正等待进栈。那么下列4个序列中不可能出现的出栈序列是_______。

    • A.a3,a1,a4,a2
    • B.a3,a2,a4,a1
    • C.a3,a4,a2,a1
    • D.a4,a3,a2,a1
  29. 6. 一个队列的入队序列是“d1,d2,d3,d4,”则队列的出队顺序是_______

    • A.d4,d3,d2,d1
    • B.d1,d2,d3,d4
    • C.d1,d4,d3,d2
    • D.d3,d2,d4,d1
  30. 4. 从栈顶指针为top的链栈中删除一个结点,并将被删结点的值保存到m中,其操作步骤为______。

    • A.m=top一>data;top=top一>next;
    • B.top=top一>next;m=top一>data;
    • C.m=top;top=top一>next;
    • D.m=top一>data;
  31. 3. 链栈与顺序栈相比,有一个较明显的优点是( )。

    • A.通常不会出现栈满的情况
    • B.通常不会出现栈空的情况
    • C.插入操作更加方便
    • D.删除操作更加方便
  32. 2. 一个栈的人栈序列为“abcde”,则以下不可能的出栈序列是______。

    • A.bcdae
    • B.edacb
    • C.bcade
    • D.aedcb
  33. 1. 栈的顺序表示中,用top表示栈顶指针,那么栈空的条件是______。

    • A.top==STACKSIZE
    • B.top==1
    • C.top==0
    • D.top==1