2022年数据结构课后习题解答栈与队列 .pdf
《2022年数据结构课后习题解答栈与队列 .pdf》由会员分享,可在线阅读,更多相关《2022年数据结构课后习题解答栈与队列 .pdf(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章栈与队列3.15 typedef struct Elemtype*base2;Elemtype*top2;BDStacktype;/双向栈类型Status Init_Stack(BDStacktype&tws,int m)/初始化一个大小为m 的双向栈 tws tws.base0=(Elemtype*)malloc(sizeof(Elemtype);tws.base1=tws.base0+m;tws.top0=tws.base0;tws.top1=tws.base1;return OK;/Init_Stack Status push(BDStacktype&tws,int i,Elemt
2、ype x)/x入栈,i=0 表示低端栈,i=1 表示高端栈 if(tws.top0tws.top1)return OVERFLOW;/注意此时的栈满条件 if(i=0)*tws.top0+=x;else if(i=1)*tws.top1-=x;else return ERROR;return OK;/push Status pop(BDStacktype&tws,int i,Elemtype&x)/x出栈,i=0 表示低端栈,i=1 表示高端栈 if(i=0)if(tws.top0=tws.base0)return OVERFLOW;x=*-tws.top0;else if(i=1)if(t
3、ws.top1=tws.base1)return OVERFLOW;x=*+tws.top1;else return ERROR;名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 12 页 -return OK;/pop 3.16 void Train_arrange(char*train)/这里用字符串train 表示火车,H表示硬席,S表示软席 p=train;q=train;InitStack(s);while(*p)if(*p=H)push(s,*p);/把H存入栈中 else*(q+)=*p;/把S调到前部 p+;while(!StackEmpty(s)pop(s,c);
4、*(q+)=c;/把H接在后部 /Train_arrange 3.17 int IsReverse()/判断输入的字符串中&前和&后部分是否为逆串,是则返回 1,否则返回 0 InitStack(s);while(e=getchar()!=&)push(s,e);while(e=getchar()!=)if(StackEmpty(s)return 0;pop(s,c);if(e!=c)return 0;if(!StackEmpty(s)return 0;return 1;/IsReverse 3.18 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 12 页 -Status Br
5、acket_Test(char*str)/判别表达式中小括号是否匹配 count=0;for(p=str;*p;p+)if(*p=()count+;else if(*p=)count-;if(count1)if(gx-1y=old)gx-1y=color;EnQueue(Q,x-1,y);/修改左邻点的颜色 if(y1)if(gxy-1=old)gxy-1=color;EnQueue(Q,x,y-1);/修改上邻点的颜色 if(xm)if(gx+1y=old)gx+1y=color;EnQueue(Q,x+1,y);/修改右邻点的颜色 if(y=0)s=0;else if(m0&n=0)s=n
6、+g(m-1,2*n);else return ERROR;return OK;/g 3.25 名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 12 页 -Status F_recursive(int n,int&s)/递归算法 if(n0)return ERROR;if(n=0)s=n+1;else F_recurve(n/2,r);s=n*r;return OK;/F_recursive Status F_nonrecursive(int n,int s)/非递归算法 if(n0)return ERROR;if(n=0)s=n+1;else InitStack(s);/s 的
7、元素类型为struct int a;int b;while(n!=0)a=n;b=n/2;push(s,a,b);n=b;/while s=1;while(!StackEmpty(s)pop(s,t);s*=t.a;/while return OK;/F_nonrecursive 3.26 float Sqrt_recursive(float A,float p,float e)/求平方根的递归算法 if(abs(p2-A)=e)p=(p+A/p)/2;return p;/Sqrt_nonrecursive 3.27 这一题的所有算法以及栈的变化过程请参见数据结构(pascal 版),作者不再
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年数据结构课后习题解答栈与队列 2022 数据结构 课后 习题 解答 队列
限制150内