#include <stdio.h>
#include <stdlib.h>
typedef struct lineStack {
char data;
struct lineStack * next;
}linkStack;
linkStack* push(linkStack* stack, char a)
{
linkStack * line = (linkStack*)malloc(sizeof(linkStack));
line->data = a;
line->next = stack;
stack = line;
printf("%c ", line->data);
return stack;
}
linkStack* pop(linkStack * stack,char *a)
{
linkStack *p;
p = stack;
stack = stack->next;
*a = p->data;
free(p);
return stack;
}
void Compare(char a[], char b[])
{
int flag=1;
for (int k = 0; a[k] != '@'; k++)
{
if (a[k] != b[k])
{
flag = 0;
break;
}
}
if (flag==0)
{
printf("不是回文\n");
}
else
{
printf("是回文\n");
}
}
int main() {
linkStack * stack = NULL;
char a;
int j = 0;
char test[] = "asdffdsb@",after[10];
for (int i = 0; test[i]!='@'; i++)
{
stack = push(stack, test[i]);
}
printf("\n");
while (stack)
{
stack = pop(stack, &a);
after[j] = a;
j++;
}
Compare(test, after);
return 0;
}