第三章作业答案知识讲稿.ppt

第三章作业答案知识讲稿.ppt

ID:59165524

大小:210.00 KB

页数:14页

时间:2020-09-24

第三章作业答案知识讲稿.ppt_第1页
第三章作业答案知识讲稿.ppt_第2页
第三章作业答案知识讲稿.ppt_第3页
第三章作业答案知识讲稿.ppt_第4页
第三章作业答案知识讲稿.ppt_第5页
资源描述:

《第三章作业答案知识讲稿.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、if语句不能用作循环语句:for或while用于循环语句。if(;;i++){……}1.简述下列算法的功能:statusalgo(StackS){inti,n,A[255];n=0;while(!StackEmpty(S)){n++;Pop(S,A[n]);}for(i=1;i<=n;i++)Push(S,A[i]);}功能:将栈中的元素倒置放置。StatusAllBrackets_Test(char*str){//判别表达式中三种括号是否匹配  InitStack(S);   for(p=str;*p;p++)   {   

2、  if(*p=='('

3、

4、*p=='['

5、

6、*p=='{')push(S,*p);     elseif(*p==')'

7、

8、*p==']'

9、

10、*p=='}'){       if(StackEmpty(S))returnERROR;       pop(S,c);       if(*p==')'&&c!='(')returnERROR;       if(*p==']'&&c!='[')returnERROR;       if(*p=='}'&&c!='{')returnERROR;//必须与当前栈顶括号匹配     }

11、//end elseif}//endfor   if(!StackEmpty(s))returnERROR;   returnOK; }//AllBrackets_Test3.如果希望循环队列中的元素都能得到利用,则需要设置一个标志域tag,并以tag的值为0或1来区分尾指针和头指针值相同时的队列状态是“空”还是“满”。试编写与此结构相应的入队列和出队列的算法,并从时间和空间角度讨论和不设标志这两种方法的使用范围(如当循环队列容量较小而队列中每个元素占的空间较多时,哪一种方法较好)。(提示:将标志的初值置“0”。一旦元素入队列

12、使得rear=front时,需要置tag为“1”:反之,一旦元素出队列使得rear=front时,需要置tag为“0”,以便使得下一次进入队列或出队列操作时,此时front=rear,根据tag的值来判断队列的状态。)分析:当循环队列容量较小而队列中每个元素占的空间较多时,此种表示方法可以节约较多的存储空间,较有价值。StatusEnCyQueue(CyQueue&Q,intx){//带tag域的循环队列入队算法  if(Q.tag==1)//tag域的值为0表示"空",1表示"满"    returnERROR;   Q.b

13、ase[Q.rear]=x;   Q.rear=(Q.rear+1)%MAXSIZE;   if(Q.front==Q.rear)Q.tag=1;//队列满 }//EnCyQueueStatusDeCyQueue(CyQueue&Q,int&x){//带tag域的循环队列出队算法  if(Q.tag==0)//队列空returnERROR; x=Q.base[Q.front];Q.front=(Q.front+1)%MAXSIZE;  if(Q.front==Q.rear)Q.tag=0;//队列空  returnOK; }/

14、/DeCyQueue4.假设称正读和反读都相同的字符序列为“回文”,例如,’abba’和’abcba’回文,’abcde’和’ababab’不是回文。试写一个算法判别读入的一个以’@’为结束符的字符序列是否是“回文”。intPalindrome_Test()//判别输入的字符串是否回文序列,是则返回1,否则返回0 {…………..}StatusPalindrome_Test()//检查是否回文{InitStack(S);InitQueue(Q);while((c=getchar()!='@'){Push(S,c);EnQueue

15、(Q,c);//同时使用栈和队列两种结构}while(!StackEmpty(S)){ Pop(S,a);DeQueue(Q,b));if(a!=b)returnERROR;   }returnOK;}5.假设如题1所述火车调度站的入口处有n节硬席或软席车厢(分别以H和S表示)等待调度,试编写算法,输出对这n节车厢进行调度的操作(即入栈或出栈操作)序列,以使所有的软席车厢都被调到硬席车厢之前。提示:voidTrain_arrange(char*train){}//这里用字符串train表示火车,字符'H'表示硬席,'S'表示软

16、席,设两个指针p和q,其中,p指向字符串train,q指向一个新的字符串,用于存放排序后的结果。voidTrain_arrange(char*train){char*p,*q;p=train;q=newtrain;InitStack(s);while(*p)  {if(*p=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。