新手学习数据结构,关于队列回文数
为了简化代码,一些判断空,判断满的细节上的东西就不写上来#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#include<string.h>
#define SIZE 100
typedef struct Node{
char * data;
int front;
int Rear;
}*pN;
pN init_Queuenode();
bool is_pnumber(pN pHead);
void init_queue(pN pHead);
int main(void){
pN n;
n=init_Queuenode();
init_queue(n);
is_pnumber(n);
return 0;
}
pN init_Queuenode(){
pN pHead=(pN)malloc(sizeof(Node)*SIZE);
if(pHead==NULL){
printf("内存空间分配失败!\n");
exit(-1);
}
pHead->front=0;
pHead->Rear=0;
return pHead;
}
void init_queue(pN pHead){
char ch;
int i=0;
printf("请输入字符串:");
while(ch=getchar()!='\n'){
pHead->data[pHead->Rear]=ch; //程序一般到了这里就挂掉了,求解
pHead->Rear++;
}
while(i<pHead->Rear-1){
putchar(pHead->data[i]);
i++;
}
}
bool is_pnumber(pN pHead){
while(pHead->front!=pHead->Rear){
if(pHead->data[pHead->front]==pHead->data[pHead->Rear-1]){
}else
{
printf("该字符串不是回文数!!\n");
return false;
}
pHead->front++;
pHead->Rear--;
}
printf("该字符串不是回文数!!\n");
return true;
}