📄 zifuduichen2.c
字号:
#define NULL 0 //nengshile-fzjd
#define maxsize 64
#include <stdio.h>
#include<malloc.h>
typedef char datatype;
typedef struct
{
datatype data[maxsize];
int top;
}seqstack;
typedef struct node
{
datatype data;
struct node *next;
}linklist;
SETNULL(seqstack *s)
{
s->top=-1;
}/*SETNULL*/
seqstack *PUSH(seqstack *s,datatype x)
{
s->top++;
s->data[s->top]=x;
return(s);
}/*PUSH*/
datatype POP(seqstack *s)
{
s->top--;
return (s->data[s->top+1]);
}/*POP*/
linklist *CREATLIST()
{
datatype n;
linklist *head,*s,*r;
head=NULL;
r=NULL;
printf("Please input Linklist!\n");
n=getchar();
while (n!='$')
{
s=malloc(sizeof(linklist));
s->data=n;
if (head==NULL) head=s;
else r->next=s;
r=s;
n=getchar();
}
printf("overlink! \n");
if (r!=NULL) r->next=NULL;
return head;
} /*CREATLIST*/
PRINT(linklist *head)
{
linklist *s;
s=head;
while (s->next!=NULL)
{
printf("%c,",s->data);
s=s->next;
}
printf("%c",s->data);
printf("\n");
} /*PRINT*/
int COMPARE(linklist *head)
{
seqstack *s;
linklist *r;
int k,n,a;
s=malloc(sizeof(seqstack));
SETNULL(s);
a=0;
r=head;
k=0;
while(r->next!=NULL)
{
r=r->next;
k++;
}
k++;
n=k/2;
r=head;
if(k%2==0)
while(n!=0)
{
s=PUSH(s,r->data);
r=r->next;
n--;
}
if(k%2==1){while(n!=0){s=PUSH(s,r->data);r=r->next;n--;}r=r->next;}
while(s->top!=-1)
{
if (POP(s)!=r->data)
{
a=1;
break;
}
else
{
r=r->next;
a=0;
}
}
return (a);
}/*COMPARE*/
void main()
{
int a;
linklist *head;
head=CREATLIST();
PRINT(head);
a=COMPARE(head);
if(a==1)
printf("false\n");
else printf("true\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -