主题:高手帮看看啊!堆栈!
#include<stdio.h>
#define MAXCHAR 40
#define NULL 0
struct node
{
char data;
struct node*next;
};
int ishs(struct node *head,int n)
{
char stack[MAXCHAR];
struct node *p=head;
int top=0;
while(top<n/2)
{
stack[top]=p->data;
printf("%c",stack[top]);
p=p->next;
top++;
}
if(n%2==1)
p=p->next;
top--;
while(strcmp(stack[top],p->data)==0)
{
p=p->next;
top--;
}
[color=000080][color=800080][color=000080] if(top==-1&&p=NULL)[/color][/color][/color] return(1);
else
return(0);
}
main()
{
char s[MAXCHAR];
struct node *head=NULL,*p,*q;
int I=0;
printf("please input a data:\n");
scanf("%s",s);
while(s[I]!='\0')
{p=(struct node *)malloc(sizeof(struct node));
if(I==0)
{head=p;
p->data=s[0];
q=p;
p->next=NULL;
I++;}
else{p->data=s[I];
q->next=p;
p->next=NULL;
q=p;
I++;}
if(head!=NULL)
do{printf("%c",p->data);
p=p->next;
}while(p!=NULL);
}
if(ishs(head,I))
printf("%s is a hui wen shu \n",s);
else
printf("NOT\n");
getch();
}
这是堆栈的应用---判断一个数是不是回文数
颜色不同的地方 一调试就说ishs函数需要逻辑0或非0
怎么回事啊 明天交作业
希望高手们帮看看!
#define MAXCHAR 40
#define NULL 0
struct node
{
char data;
struct node*next;
};
int ishs(struct node *head,int n)
{
char stack[MAXCHAR];
struct node *p=head;
int top=0;
while(top<n/2)
{
stack[top]=p->data;
printf("%c",stack[top]);
p=p->next;
top++;
}
if(n%2==1)
p=p->next;
top--;
while(strcmp(stack[top],p->data)==0)
{
p=p->next;
top--;
}
[color=000080][color=800080][color=000080] if(top==-1&&p=NULL)[/color][/color][/color] return(1);
else
return(0);
}
main()
{
char s[MAXCHAR];
struct node *head=NULL,*p,*q;
int I=0;
printf("please input a data:\n");
scanf("%s",s);
while(s[I]!='\0')
{p=(struct node *)malloc(sizeof(struct node));
if(I==0)
{head=p;
p->data=s[0];
q=p;
p->next=NULL;
I++;}
else{p->data=s[I];
q->next=p;
p->next=NULL;
q=p;
I++;}
if(head!=NULL)
do{printf("%c",p->data);
p=p->next;
}while(p!=NULL);
}
if(ishs(head,I))
printf("%s is a hui wen shu \n",s);
else
printf("NOT\n");
getch();
}
这是堆栈的应用---判断一个数是不是回文数
颜色不同的地方 一调试就说ishs函数需要逻辑0或非0
怎么回事啊 明天交作业
希望高手们帮看看!