您好,欢迎访问三七文档
实验四栈的实现与应用编程题:1.设计新接口并在content.cpp文件中测试:1)设计顺序栈的遍历接口intTraverseStack(SqStack&S);实现栈中数据按出栈的顺序输出,但保留栈中的数据;//按出栈顺序遍历栈intTraverseStack(SqStack&S){if(StackEmpty(S)==1){cout栈空endl;return0;//栈空,遍历失败}for(inti=S.top;i=0;i--)coutS.items[i];coutendl;return1;//遍历成功}2)设计链栈的遍历接口intTraverseStack(SNode*top);实现栈中数据按出栈的顺序输出,但保留栈中的数据;//按出栈顺序遍历栈intTraverseStack(SNode*top){if(StackEmpty(top)==1){cout空栈endl;return0;//空栈,遍历失败}SNode*p=top-next;//不能移动栈顶指针while(p){coutp-data;p=p-next;}coutendl;return1;//遍历成功}2.链栈的应用:编写函数,判断给定的字符串是否回文。如字符串“abcba”、“abccba”均为中心对称,字符串“abcdba”不中心对称,我们将中心对称的字符串称为回文。【要求】利用本实验已实现的链栈基本操作来实现,并进行测试;【函数原型】intIsReverse(char*s);【函数功能】判断字符串s是否为回文,是返回1,否则返回0;【提示】先将字符串内容全部入栈,然后执行出栈操作,依次判断每次出栈的字符是否与字符串中对应正向字符相同,如果出现不相同的字符则说明字符串不是回文,全部都相同则是回文。//判断字符串s是否为回文intIsReverse(char*s){SNode*stack;//定义管理链栈的栈顶指针DataTypet;InitStack(stack);//初始化链栈for(inti=0;istrlen(s);i++)//将字符串中的内容入栈Push(stack,s[i]);i=0;while(StackEmpty(stack)!=1){Pop(stack,t);//出栈//比较出栈元素与字符串正向元素是否相同if(t!=s[i])return0;//不是回文elsei++;}return1;//是回文}
本文标题:数据结构lab04
链接地址:https://www.777doc.com/doc-5443887 .html