include<stdlib.h>

2017-11-13 00:05
请先登录。

老师由于电脑网络和系统的原因作业没有提交上去,现补交 任务 未提交 7-杨凯静 0 粉丝 0 关注 @ 我的 评论 1 赞 收藏 我的课程 我的任务 搜索 未提交 7 已完成 已完结 任务八 第三章作业题续 今天截止 未提交 展开任务 交作业 2016级数据结构 取消 提交 任务九 第三章编程作业(提交可执行代码到雪梨) 今天截止 未提交 展开任务 交作业 2016级数据结构 任务06_3 改错题 2017-11-17 截止 未提交 展开任务 交作业 2016级面向对象程序设计(C++) 任务06_2 写出构造、析构顺序 2017-11-17 截止 未提交 展开任务 交作业 2016级面向对象程序设计(C++) 任务06_1 统计箱子的数量 2017-11-17 截止 未提交 展开任务 交作业 2016级面向对象程序设计(C++) 任务七 使用场景法和状态转换法设计测试用例 2017-11-20 截止 未提交 展开任务 交作业 软件测试基础2016级7、8班 « 1 2 » 地址: 石家庄市裕华区南二环东路20号 ® 石家庄佳诚网络技术有限公司 冀ICP备12011972号-4 站长统计 × 作业预览 所属任务: 任务八 第三章作业题续 7-杨凯静 #include void test(int (&sum)){ int x; for(;;) { scanf("%d",&x); if(x==0) { sum=0; break; } else{ sum+=x; } } printf("%d",sum); } int main(void) { return 0; } 实现下列3个函数: Status InitStack(TwoWayStack &tws, int size); Status Push(TwoWayStack &tws, int i, SElemType x); Status Pop(TwoWayStack &tws, int i, SElemType &x); 双向栈类型定义如下: typedef struct { SElemType *elem; int top[2]; int size; // 分配给elem的总容量 }TwoWayStack; // 双端栈 Status InitStack(TwoWayStack &tws, int size) { tws.elem=(SElemType*)malloc(sizeof(SElemType)*size); tws.size=size; tws.top[0]=0; //hao tws.top[1]=size-1; return OK; } Status Push(TwoWayStack &tws, int i, SElemType x) {int w=tws.top[0]; if(w==tws.top[1]) return ERROR; else if(i==0) { tws.elem[tws.top[0]]=x; tws.top[0]=tws.top[0]+1; } else if(i==1) { tws.elem[tws.top[1]]=x; tws.top[1]=tws.top[1]-1; } return OK; } Status Pop(TwoWayStack &tws, int i, SElemType &x) { if(tws.top[1]==tws.size-1&&i==1) return ERROR; else if(tws.top[0]==0&&i==0) return ERROR; else if(i==0) { tws.top[0]-=1; x=tws.elem[tws.top[0]]; } else if(i==1) { tws.top[1]+=1; x=tws.elem[tws.top[1]]; } return x; } #include #include #define m 100 typedef struct { char stack[m]; int top; }stackstru; // 定义栈 typedef struct { char queue[m]; int front; int rear; }queuestru; //定义队列 void main() { //函数声明 int stinit(stackstru *s); //初始化顺序栈 int stempty(stackstru *s); //判断栈是否为空 int stpush(stackstru *s,char x); //入栈 char stpop(stackstru *s); //出栈 int quinit(queuestru *q); //初始化循环队列 int quempty(queuestru *q); //判断队列是否为空 int enqueue(queuestru *q,char e); //入队 char dequeue(queuestru *q); //出队 // char c; int flag=0; stackstru *s=(stackstru *)malloc(sizeof(stackstru)); //为顺序栈申请空间 queuestru *q=(queuestru *)malloc(sizeof(queuestru)); //为队列申请空间 stinit(s); //初始化栈 quinit(q); //初始化队列 printf("Input a string:\n");//输入字符串,输入@标示输入结束。 while((c=getchar())!='@') //将输入的字符串入栈和队列 { putchar(c); //输出输入的字符 stpush(s,c); //字符进栈 enqueue(q,c); //字符进队列 } printf("\n"); printf("End input!\n"); //提示信息 while(stempty(s)) //栈中还有元素 { if(stpop(s)==dequeue(q)) //出栈的字符与出队列的字符匹 { flag=1; //将标志设置为1 continue; //继续从栈和队列中区字符 } else //字符不匹配 { flag=0; break; //跳出循环,将标志设置为0 } } if(flag==1) printf("This string is palindrome!\n"); //标志位为1,完全匹配,是回文 else printf("This string isn't palindrome!\n");//标志位为0,不完全匹配,不是回文 } int stinit(stackstru *s) { s->top=0; return 1; } //初始化栈 int stempty(stackstru *s) { if(s->top==0) //栈顶为空 { return 0; } else { return 1; } } //判断栈是否空 int stpush(stackstru *s,char x) { if(s->top==m) //栈满 { printf("The stack is overflow!\n"); //输出提示信息 return 0; } else //栈未满 { s->top=s->top+1; //栈顶后移 s->stack[s->top]=x; //字符入栈 return 1; } } //入栈操作 char stpop(stackstru *s) { char y; if(s->top==0) //栈为空 { printf("The stack is empty!\n"); //输出提示信息 return ''; //返回空格 } else //栈不为空 { y=s->stack[s->top]; //取出栈顶元素 s->top=s->top-1; //栈顶指示移动 return y; } } //出栈操 int quinit(queuestru *q) { q->front=0; q->rear=0; return 1; } //初始化为一个空的循环队列 int quempty(queuestru *q) { if(q->front==q->rear) //队头和队尾相等 { return 0; } else { return 1; } } //判断队列是否为空 int enqueue(queuestru *q,char e) { if((q->rear+1)%m==q->front) //队列已满 { printf("The queue is overflow!\n"); //提示信息 return 0; } else { q->queue[q->rear]=e; //入队 q->rear=(q->rear+1)%m; //移动队尾指针 return 1; } } //入队操作 char dequeue(queuestru *q) { char f; if(q->front==q->rear) //队列为空 { printf("The queue is empty!\n"); //提示信息 return 0; } else { f=q->queue[q->front]; //取出队首元素 q->front=(q->front+1)%m; //移动对头指针 return f; } } //出队操作