Slik sletter du en C ++ Corrupt Heap

En haug er en trestruktur som er i samsvar med en spesiell haug regelen. Haugen regelen sier at hver node i treet har en lavere verdi enn den overordnede noden. Nodene er steder i treet som inneholder data. En haug lagrer den største verdien node i rotnoden av treet, mens de lavest verdi noder ligge på det laveste nivået på treet. En haug kan bli skadet når en annen prosess endrer dataene slik at det ikke lenger fester seg til haugen regelen. I C ++, kan du opprette og ødelegge masser ved hjelp av grunnleggende funksjoner.

Bruksanvisning

1 Last inn C ++ IDE ved å klikke på programikonet. Når den åpnes, velger du "Fil / Ny / Project" og velg "C ++ Project" for å opprette en ny C ++ prosjekt. En tom kildekoden filen vises i teksteditor del av IDE.

2 Importer "Vector" og "algoritme" biblioteker ved å skrive følgende på toppen av kildekoden filen:

import <vector> import <algoritme>

3 Erklærer en hovedfunksjon. Hovedfunksjoner er programmet inngangspunkter - hvor programmet starter utførelsen. Klammeparenteser som følger en hovedfunksjon danne en kodeblokk: De kapsle alt av kildekoden for din viktigste funksjon. Skriv den viktigste funksjonen erklæringen og kodeblokk som dette:

int main ()
{}

4 Skriv kildekoden finnes i de følgende trinnene inne i klammeparenteser av den viktigste funksjonen.

5 Opprett en vektor data container. Vektorer er sekvensielle beholdere som automatisk kan endre størrelse på seg selv når data er lagt til dem. For å opprette en ny vektor, skrive følgende uttalelse:

vector <int> v ();

6 Legge til data til vektoren ved hjelp av "push_back" -funksjon. For eksempel, for å legge tallene 1 til 4 for å vektoren, skrive følgende linjer med kode:

v.push_back (1);
v.push_back (2);
v.push_back (3);
v.push_back (4);

7 Omorganisere vektor for å danne en haug. En haug er en trestruktur der "barn" av et knutepunkt er lavere verdi; Derfor toppnoden i en haug er noden med den høyeste tallverdi - 4, i dette eksempelet. Du kan bruke make_heap kommando som dette, passerer i begynnelsen og slutten av vektoren å inkludere alle dens elementer:

make_heap (v.begin (), v.end ());

8 Fjern alle elementer fra en haug hvis du mistenker at det har blitt ødelagt. Du kan gjøre dette ved hjelp av "pop_heap" funksjon som dette:

pop_heap (v.begin (), v.end ());