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