⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zifuduichen2.c

📁 数据结构基础学习程序
💻 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 + -