testlist.cpp

来自「STRUCTURI DE DATE SI ALGORITMI」· C++ 代码 · 共 90 行

CPP
90
字号
#include"glista.h"
#include<stdio.h>
#include<conio.h>
void afisare(GLista l)
{
	GElement*p;
	p=l;
	while(p!=0){
		if(p->tag==ATOM)
			printf("%c",p->data.A);
		else afisare(p->data.L);
		p=p->link;
		}
}
int min(GLista l)
{
	int m;
	GElement*p=l;
	m=0;
	while(p!=0){
		if(p->tag==ATOM){
			if(p->data.A<m)
				m=p->data.A;
			}
		else min(p->data.L);
		p=p->link;
		}
	return(m);
}
void afisform(GLista l)
{
	GElement*p;
	p=l;
	printf("(");
	while(p!=0){
		if(p->tag==ATOM)
			printf("%c",p->data.A);
		else afisform(p->data.L);
		if(p->link!=0) printf(",");
		p=p->link;
		}
	printf(")");
}
int iseg(GLista l,GLista k)
{
	GLista p=l,q=k;
	while(p!=0 && q!=0){
		if(p->tag!=q->tag) return 0;
		if(p->tag==ATOM && p->data.A!=q->data.A) return 0;
		if(p->tag==LISTA && !iseg(p->data.L,q->data.L)) return 0;
		p=p->link;
		q=q->link;
		}
	return (p==0 && q==0);
}

int adlist(GLista l)
{
	GLista p=l;
	int x=0;
	int ad;
	while(p!=0){
		if(p->tag==LISTA){
		   ad=adlist(p->data.L);
		   if(ad>x)
			x=ad;
		   }
		p=p->link;
		}
	return(x+1);
}


void main()
{
	GLista list1,list2;
	list1=creareGLista();
	clrscr();
	afisare(list1);
	printf("\nElementul minim=%d",min(list1));
	afisform(list1);
	printf("\nadincimea listei=%d",adlist(list1));
	getch();
	clrscr();
	list2=creareGLista();
	if(iseg(list1,list2))
		printf("\nlistele sint egale");
		else printf("\nlistele nu sint egale");

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?