sub10_i.cpp

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

CPP
81
字号
#include"glista.cpp"

int nratomi(GLista L);
void afis(GLista L);
int deep(GLista L);//NU MERGE

void main()
{
GLista L;
clrscr();
printf("\nIntroduceti lista :\n");
L=creareGLista();
printf("\nNr. de atomi : %d ",nratomi(L));
printf("\nLista citita : ");
afis(L);
printf("\nAdincimea: %d",deep(L));
getch();
}


int nratomi(GLista L)
{
GElement *p;
int nr=0;
p=L;
while(p!=0)
	{
	if(p->tag==ATOM)
		nr++;
	else
		nr+=nratomi(p->data.L);
	p=p->link;
	}
return(nr);
}

int deep(GLista L)
{
GElement *p;
int ad=0,h=0,t=0;
p=L;
while(p!=0)
	{
	h=h++;
	if(p->tag==LISTA)
	      if(p->data.L!=0)
			{
			t=deep(p->data.L);
			if(h+t>ad)
			   ad=h+t;
			}
	p=p->link;
	}
  return(ad);
}


void afis(GLista L)
{
GElement *p;
p=L;
printf("(");
while(p!=0)
	{
	if(p->tag==ATOM)
		{
		printf("%c",p->data.A);
		if(p->link!=NULL)
			printf(",");
		}
	else
		{
		afis(p->data.L);
		if(p->link!=NULL)
			printf(",");
		}
	p=p->link;
	}
printf(")");
}

⌨️ 快捷键说明

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