//出栈(删除) intpop() { int e; if (s.top == s.base) { printf("空栈\n"); exit(0); } s.top--;//修改栈顶指针 e = *s.top;//赋值 return e; } //判断是否为回文 voidjudge() { int e, n, x = 0, y = 0; initstack(); initqlink(); printf("请输入数值长度:"); scanf("%d", &n); printf("请输入数值:");//逐个输入元素 for (int i = 1; i <= n; i++) { scanf("%d", &e); push(e); enqlink(e); } int b = n;//第一个循环n--到0了,需要将n赋给另一个变量 while (s.top != s.base) {
x = x + pop() * pow(10,n); n--; } printf("输出x的值"); printf("%d", x/10);//将各个元素合在一起化成数值 printf("\n"); while (q.rear != q.front) { y = y + deqlink() * pow(10, b ); b--; } printf("输出y的值"); printf("%d", y/10);//将各个元素合在一起化成数值 printf("\n"); if (x == y)//比较是否相等判断是否为回文 printf("该数值是回文"); else printf("该数值不是回文");