《数据结构习题集(李冬梅 第2版)C语言版源程序习题源代码 习题集-算法3-2.docx》由会员分享,可在线阅读,更多相关《数据结构习题集(李冬梅 第2版)C语言版源程序习题源代码 习题集-算法3-2.docx(2页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、ttinclude 件include include using namespace std;/函数结果状态代码#define OK 1define ERROR 0 ddefine OVERFLOW -2 4define MAX 100 /Status是函数的返回值类型,其值是函数结果状态代码 typedef int Status;typedef struct (char *base;char *top; int stacksize;SqStack;Status InitStack(SqStack &S); Status EmptyStack(SqStack S); char Pop(SqSt
2、ack &S);Status Push(SqStack iSzchar e); int IsPalindrome(char *t);int main() (char a = ( a, b,b, a* ;if(IsPalindrome(a) coutYES,endl;else cout,/NO,endl;return 0;Status InitStack(SqStack &S) (S.base=new charMAX;if(!S.base) exit(OVERFLOW);S.top=S.base;S.stacksize=MAX; return OK;栈底指针栈顶指针栈可用的最大容量初始化栈判断栈
3、是否为空出栈入栈判断t字符向量是否为回文初始化栈判断栈是否为空出栈Status EmptyStack(SqStack S) (if (S.top=S.base)return 1;elsereturn 0;char Pop(SqStack &S)(if(S.top=S.base) return ERROR; return *(-S.top);Status PushfSqStack &S# char e)/入栈( if(S.top-S.base=S.stacks!ze)return ERROR;*S.top+=e; return OK; int IsPalindrome(char *t)判断t字符
4、向量是否为回文,假设是,返回1,否那么返回0SqStack S;int i;InitStack(S);int len=strlen(t);for(i=0;ilen/2;i+)Push(S,t i);if(len%2!=0)i+;while(!EmptyStack(S) (char temp=Pop(S);if(temp!ti)return 0;else i+;return 1;)SqStack S;int i;InitStack(S);int len=strlen(t);for(i=0;ilen/2;i+)Push(S,t i);if(len%2!=0)i+;while(!EmptyStack(S) (char temp=Pop(S);if(temp!ti)return 0;else i+;return 1;)求向量长度将一半字符入栈长度为奇数,跳过中间字段每次弹出一个字符与相应字符比拟不等那么返回0比拟完毕均相等那么返回1输出结果:YES