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 + -
显示快捷键?