sub11.cpp

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

CPP
114
字号
#include<stdlib.h>
#include"g:\\users\\u15\\sda\\subiecte\\arboreb.cpp"

#define DIMMAX 100
int r=1;
typedef Nod* Atom;
struct Coada
	{
	int head,tail;
	Atom vect[DIMMAX];
	};

void error(char s[]);
void init(Coada& C);
int isEmpty(Coada C);
void put(Coada& C,Atom a);
Nod* front(Coada& C);
void inordine(Nod*& N);
void afniv(Coada& C,Nod*& N);
void disp(Coada C);


void main()
{
Coada C;
char s[50];
Nod *rad;
clrscr();
rad=creareArbore();
printf("\nArborele parcurs in inordine:");
inordine(rad);
printf("\nArborele parcurs pe nivele :");
init(C);
afniv(C,rad);
getch();
}

void inordine(Nod*& N)
{
Nod *t;
t=N;
if(t!=0)
	{
	inordine(t->stg);
	printf(" %c",t->data);
	inordine(t->drt);
	}
}

void init(Coada& C)
{
	C.head=C.tail=0;
}


int isEmpty(Coada C)
{
	return(C.head==C.tail);
}


Nod *front(Coada& C)
{
if(C.tail==C.head)
	error("Coada VIDA!");
else
return(C.vect[C.head++]);
}


void put(Coada& C,Atom a)
{

if(C.tail>DIMMAX)
	error("Coada PLINA!");
else
	{
	C.vect[C.tail]=a;
		C.tail+=1;
	}
}

void afniv(Coada& C,Nod*& N)
{
Nod *p;
put(C,N);printf("%c",N->data);
while(!isEmpty(C)){
p=front(C);
if(p->stg){printf(" %c ",p->stg->data);put(C,p->stg);};
if(p->drt){printf(" %c ",p->drt->data);put(C,p->drt);};
}
}

void error(char s[])
{
printf("\n\tEROARE!\t%s",s);
getch();
exit(1);
}


void disp(Coada C)
{
while(C.head!=C.tail)
	{
	printf(" %c",front(C));
	if(C.tail==C.head)
		error("Coada VIDA!");
	else
		C.head+=1;
	}
}

⌨️ 快捷键说明

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