sub25.cpp

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

CPP
94
字号
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include"listaint.cpp"

Lista vect[20];
int max=0;


int testarc(int,int);
void eroare(char s[]);
void succesori(int n);
int gradmax(int);

void main()
{
int nod,arc,i,n1,n2,k,nrnod,nr;
char s[50];
clrscr();
printf("\nIntroduceti nr. de noduri :");
scanf("%d",&nod);
printf("\nIntroduceti nr. de arce :");
scanf("%d",&arc);
for(i=1;i<=nod;i++)
	vect[i]=NULL;
printf("\nIntroduceti arcele :\n");
for(i=0;i<arc;i++)
	{
	scanf("%d",&nrnod);
	scanf("%d",&nr);
	if(nrnod<0||nrnod>nod||nr<0||nr>nod)
		eroare("Ati introdus gresit!");
	insert(vect[nrnod],nr);
	}
printf("\nIntroduceti doua noduri :");
scanf("%d%d",&n1,&n2);
if(testarc(n1,n2)==1)
	printf("\nExista arc de la %d la %d !",n1,n2);
else
	printf("\nNU exista arc de la %d la %d !",n1,n2);
printf("\nIntroduceti nodul pentru afisarea listei de succesori:");
scanf("%d",&k);
printf("\nSuccesorii nodului %d :",k);
succesori(k);
printf("\nGradul maxim de iesire : %d",gradmax(nod));
getch();
}

int testarc(int n1,int n2)
{
Lista p=vect[n1];
while(p!=0)
	{
	if(p->data==n2)
		return 1;
	p=p->link;
	}
return 0;
}

void eroare(char s[])
{
printf("\nEROARE! %s",s);
getch();
exit(1);
}

void succesori(int n)
{
Lista p=vect[n];
while(p!=0)
	{
	printf(" %d",p->data);
	p=p->link;
	}
}

int gradmax(int n)
{
int c;
for(int i=1;i<=n;i++)
	{
	c=0;
	Lista p=vect[i];
	while(p!=0)
		{
		c++;
		p=p->link;
		}
	if(c>max)
		max=c;
	}
return max;
}

⌨️ 快捷键说明

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