sub21_i.cpp

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

CPP
90
字号
#include<stdio.h>
#include<conio.h>
#define DIMMAX 100

int tab[DIMMAX+1];
int a[DIMMAX+1];

void inordine(int,int);
void postordine(int,int);
void insert(int,int);
void build_heap(int);
void afheap(int);

void main()
{
int n,c=0;
clrscr();
printf("\nIntrare :");
scanf("%d",&n);
tab[1]=n;
while(n!=0)
	{
	c++;
	scanf("%d",&n);
	if(n!=0)
		tab[c+1]=n;
	}
printf("\nIesire :");
printf("\n\tPostordine :");
postordine(1,c);
printf("\n\tInordine :");
inordine(3,c);
printf("\n\tHEAP-ul(realizat de sus in jos) :");
build_heap(c);
afheap(c);
getch();
}

void inordine(int i,int n)
{
if(i<=n && tab[i]!=0)
	{
	inordine(2*i,n);
	printf(" %d",tab[i]);
	inordine(2*i+1,n);
	}
}

void postordine(int i,int n)
{
if(i<=n && tab[i]!=0)
	{
	postordine(2*i,n);
	postordine(2*i+1,n);
        printf(" %d",tab[i]);
	}
}

void insert(int N,int x)
{
int temp;
a[N+1]=x;
N=N+1;
int f=N;
int p=N/2;
while(p>=1)
	if(a[p]<a[f])
		{
		temp=a[p];
		a[p]=a[f];
		a[f]=temp;
		f=p;
		f=p/2;
		}
	else
		p=0;
}

void build_heap(int n)
{
for(int i=2;i<n;i++)
	insert(n,tab[i]);
}

void afheap(int n)
{
for(int i=1;i<=n;i++)
	printf(" %d",a[i]);
}

⌨️ 快捷键说明

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