03:栈与队列习题.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
03:栈与队列习题

【基础知识题】 1.若按3.1.1节中所示铁道进行车厢调度(注意:两侧铁道均为单向行驶道),则请回答:  (1) 如果进站的车厢序列为123,则可能得到的出站车厢序列是什么?  (2) 如果进站的车厢序列为123456,则能否得到435612和135426的出站序列,并请说明为什么不能得到或者如何得到(即写出以S表示进栈和以X表示出栈的栈操作序列)。  2.简述栈和线性表的差别。  3.写出下列程序段的输出结果(栈的元素类型 SElemType 为 char)。   void main( ){    Stack S;    char x, y;    InitStack(S);    x=c; y=k;    Push(S, x); Push(S, a); Push(S, y);    Pop(S, x); Push(S, t); Push(S, x);    Pop(S, x); Push(S, s);    while (!StackEmpty(S)) { Pop(S, y); printf(y); };    printf(x);   }  4.简述以下算法的功能(栈的元素类型 SElemType 为 int )。  (1) status algo1(Stack S) {     int i, n, A [255];     n=0;     while (!StackEmpty(S) ) { n++; Pop(S, A[n]); };     for ( i=1; i= n ; i++) Push(S, A[i]);    }  (2) status algo2(Stack S, int e) {     Stack T; int d;     InitStack(T);     while (!StackEmpty(S)) {      Pop(S, d);      if (d!=e ) Push(T, d);     }     while (!StackEmpty(T)) {      Pop(T, d);      Push(S, d);     }    }  11.简述队列和栈这两种数据类型的相同点和差异处。  13.简述以下算法的功能(栈和队列的元素类型均为 int)。   void algo3(Queue Q)   {    Stack S; int d;    InitStack (S);    while (!QueueEmpty(Q))    {     DeQueue(Q, d); Push(S, d);    }    while (!StackEmpty(S))    {     Pop(S, d); EnQueue(Q, d);    }   }   【编程练习题】   本章编程练习题中可以利用的栈和队列的类型定义如下:  // stack 类型  void InitStack( stack s );  // 初始化 s 为空栈  void Push( stacks , char x); // 将元素 x 插入 s 的栈顶  void Pop( stack s );     // 删除 s 中的栈顶元素  bool SEmpty( stack s);    // 若栈 s 为空则返回 TRUE,否则返回 FALSE  char GetTop( stack s );   // 返回 s 中的栈顶元素  void ClearStack( stack s);  // 将栈 s 清空  int StackLength( stack s);  // 返回栈 s 中元素个数  void DestroyStack( stack s );// 销毁栈 s 结构  // queue 类型  void InitQueue( queue q );   // 初始化 q 为空栈  void EnQueue( queue q , char x );// 将元素 x 插入 q 的队尾  void Dequeue( queue q);     // 删除 q 中队头元素  char GetHead( queue q );    // 返回 q 中队头元素  bool QEmpty( queue q);  // 若队列 q 为空则返回 TRUE,否则返回 FALSE  void ClearQueue( queue q );   // 将队列 q 清空  int QueueLength( queue q );   // 返回队列 q 中元素个数  void DestroyQueue( queue q );  // 销毁队列 q 结构  17. 试写一个算法,识别依次读入的一个以 @ 为结束符的字符

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档