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

习 题;(3)请分析 1,2 ,3 ,4 的24种排列中,哪些序列是可以通过相应的入出栈操作得到的。 2.循环队列的优点是什么? 如何判别它的空和满?? 3.设长度为n的链队用单循环链表表示,若设头指针,则入队出队操作的时间为何? 若只设尾指针呢??;4.指出下述程序段的功能是什么?? (1) void Demo1(SeqStack *S){    int i; arr[64] ; n=0 ;   while ( StackEmpty(S)) arr[n++]=Pop(S);   for (i=0, i n; i++) Push(S, arr[i]);  } //Demo1;(2) SeqStack S1, S2, tmp;    DataType x; //假设栈tmp和S2已做过初始化 while ( ! StackEmpty (S1)) { x=Pop(S1) ;   Push(tmp,x); } while ( ! StackEmpty (tmp) ) {  x=Pop( tmp);?   Push( S1,x);   Push( S2, x); };(3) void Demo2( SeqStack *S, int m)?   { // 设DataType 为int 型    SeqStack T; int i;    InitStack (T);    while (! StackEmpty( S))    if(( i=Pop(S)) !=m) Push( T,i);    while (! StackEmpty( T))    { i=Pop(T); Push(S,i);    }   };(4)void Demo3( CirQueue *Q)   { // 设DataType 为int 型   int x; SeqStack S;   InitStack( S);   while (! QueueEmpty( Q ))    {x=DeQueue( Q); Push( S,x);}   while (! StackEmpty( s))     { x=Pop(S); EnQueue( Q,x );} } // Demo3;(5) CirQueue Q1, Q2; // 设DataType 为int 型    int x, i , n= 0;   // 设Q1已有内容, Q2已初始化过    while ( ! QueueEmpty( Q1) )?     { x=DeQueue( Q1 ) ; EnQueue(Q2, x); n++;}    for (i=0; i n; i++)?     { x=DeQueue(Q2) ;?    EnQueue( Q1, x) ; EnQueue( Q2, x);}? ;5、回文是指正读反读均相同的字符序列,如abba和abdba均是回文,但good不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)? ;//以下为顺序栈的存储结构定义  #define StackSize 100 //假定预分配的栈空间最多为100个元素  typedef char DataType;//假定栈元素的数据类型为字符  typedef struct{   DataType data[StackSize];   int top;  }SeqStack;?  ;int IsHuiwen( char *t)   { //判断t字符向量是否为回文,若是,返回1,否则返回0    SeqStack s;    int i , len;    char temp;    InitStack( s);    len=strlen(t); //求向量长度    ;for ( i=0; ilen/2; i++) //将一半字符入栈   Push( s, t[i]); if (len/2!=0) i++; while( !EmptyStack( s)) { // 每弹出一个字符与相应字符比较   temp=Pop (s);   if( temp!=S[i])? return 0 ; // 不等则返回0   else i++;    }? return 1 ; // 比较完毕均相等则返回 1 } ;6. 利用栈的基本操作,写一个将栈S中所有结点均删去的算法 void ClearStack( SeqStack *S),并说明S为何要作为指针参数?? 7.设计算法判断一

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档