Προς το περιεχόμενο

heap insert με δεικτες, αλγοριθμος


fonsde

Προτεινόμενες αναρτήσεις

Δημοσ.

θελω τον αλγοριθμο εισαγωγης ενος στοιχειου σε εναν heap με δεικτες.

 

>typedef struct heap{
       int   key
       heap *pointer[2]
}heap

 

thnx

Δημοσ.

Από το βιβλίο δομών δεδομένων του Sahni (ότι καλύτερο για δομές δεδομένων σε C++).

Υποθέτω ότι μιλάς για σωρό μεγίστων (MaxHeap).

 

Insert(const int x)

{

// Insert x into the max heap

if(CurrentSize == MaxSize)

throw NoMem(); // no space

 

// find place for x

//i starts at new leaf and moves up tree

int i = ++CurrentSize;

while(i!=1 && x>heap[i/2])

{

//cannot put x in heap

heap = heap[i/2]; // move element down

i /= 2; // move to parent

}

 

heap = x;

return *this;

}

 

Φυσικά ανάλογα με την μέχρι τώρα υλοποίηση σου θα πρέπει να αλλάξεις κάποια πράγματα (π.χ. ονόματα μεταβλητών κτλ.). Ελπίζω να βοήθησα ...

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...