Labor 9
|
1. Készítsünk egy kupac
programmodult. A modul
tesztelésére egy
állományban levő valós számokkal
töltsünk fel egy kupacot, majd írjuk ki csökkenő
sorrendbe egy másik állományba a számokat.
Használjuk az alábbi típus
és függvény definiciókat. Kupac animáció teljes feladat #ifndef _HEAP_H #define _HEAP_H #define SWAP( T, a, b ){ T c = a; a = b; b = c; } // ket kupacbeli elem kicserelesere typedef void * TYPE; struct Heap{ TYPE * x; int max; //a kupac kapacitasa int n; //a kupac aktualis elem szama }; typedef struct Heap * HEAPPTR; HEAPPTR create( int max ); //memoriahely foglalas void destroy( HEAPPTR ); //memoriahely felszabaditas void insert( HEAPPTR, TYPE ); //uj elemet szur be a kupacba TYPE getmin( HEAPPTR ); // kiveszi a kupacbol a legkisebb elemet es visszateriti void down( HEAPPTR ); //kivetel utan visszaalitja a kupac tulajdonsagot void up( HEAPPTR ); //beszuras utan visszaalitja a kupac tulajdonsagot #endif #include "Heap.h"
#include <stdio.h> main(){ int a[]={9, 45, 1, 6, -9, 19, -1, 21, 8, 3}; int i; int m = sizeof( a )/sizeof( a[0] ); HEAPPTR h = create( m ); for( i=0; i<m; i++ ) insert( h, &a[i] ); for( i=0; i<m; i++ ) printf("%d\t", *(int *)getmin(h)); destroy( h ); printf("\n"); return 0; } |