数据结构之栈和队列---回文判断

来源:互联网 发布:永宏plc编程软件下载 编辑:程序博客网 时间:2024/04/28 00:10

问题:假设称正读和反读都相同的字符序列为回文,例如,‘abba’和‘abcba'是回文,‘abcde’和ababab'则不是回文。试写一个算法判别读入的一个一‘@’为结束符的字符序列是否是回文。

算法思想:栈的操作为后进先出,队列的操作为先进先出,利用栈和队列的这两个性质,比较出栈和出队的元素是否相同,即可判断字符序列是否为回文

栈的基本操作

队列的基本操作

//回文的判别算法

int Palindrome(){MyStack *stack;LinkQueue *lq;int sch,qch;stack = InitStack();lq = InitQueue();printf("请输入字符串:");while((sch=getchar())!='@'){PushStack(stack, sch);EnQueue(lq, sch);}while(stack->top!=stack->base)if(PopStack(stack,&sch)==-1||DeQueue(lq, &qch)==-1||(sch!=qch)){DestroyStack(stack);DestroyQueue(lq);return -1;}DestroyStack(stack);DestroyQueue(lq);return 0;}


1 0
原创粉丝点击