1.问题描述
给定一个数N,如果这个数顺读和逆读都是一样的,则称之为回文数。例如:123321是回文数,123421不是回文数。
2.解决思路
将数N的各位数字分别存放在链队列和字符数组中,依次比较队列和数组中的字符,如果完全相等,则是回文数,否则不是回文数。
3.代码实现
//----*---*---*---*---*---*---*---
//程序名称:链队列的应用:判断回文
//编译环境:VC++ 6.0
//作者:Bee_darker
//修改日期:2018-11-04
//----*---*---*---*---*---*---*---
#define OK 1
#define OVERFLOW -1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
typedef int Status;
typedef int QElemType;
int yes = 0;
//定义链队列
typedef struct QNode
{
QElemType data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct
{
QueuePtr front;
QueuePtr rear;
}LinkQueue;
//创建空队列
Status InitQueue(LinkQueue &Q)
{
Q.front = Q.rear = (QueuePtr)malloc(sizeof(QNode));
if(!Q.front)
exit(yes);