数据结构之栈的应用(2)回文序列

来源:互联网 发布:基金软件手机版 编辑:程序博客网 时间:2024/06/06 03:59

典型的用栈来解决问题 话不多说 直接上代码

勉强说容易遗忘的点就是如何以特殊字符结束字符串,算是很基本的东西,但是容易忘。

这里利用了栈结构先进后出的性质,直接反转字符串,再利用strcmp函数对比输入串和输出串即可。

#include#include#include#define ERROR 0;#define OK 1;typedef struct Stack{    char *elements;    int top_index,max_size;}Stack;void init(Stack* s,int length){    s->elements=(char *)malloc(sizeof(char)*length);    s->max_size=length;    s->top_index=-1;}int push(Stack* s,char element){    if(s->top_index >= s->max_size-1){        return ERROR;    }    s->top_index++;    s->elements[s->top_index]=element;    return OK;}int pop(Stack* s){    if(s->top_index<0){        return ERROR;    }    s->top_index--;    return OK;}int top(Stack* s){    if(s->top_index==-1){        return ERROR;    }    else    {    return s->elements[s->top_index];    }}int main(){    char input[100]={'\0'};    char a;    int i=0;    Stack* s=(Stack *)malloc(sizeof(Stack));    while((a=getchar())!='@'){        input[i++]=a;    }    int length=(int)strlen(input);    init(s,length);    for(int k=0;k

原创粉丝点击