Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    48

    [C++] Coda di priorità attraverso RedBlack tree

    Salve a tutti, mi trovo alle prese cn questo progetto per un esame universitario.
    Ho implementato gia la struttura dati redblack tree. Adesso dovrei aggiungere le funzioni inerenti alla coda di priorità

    Extractmax
    Insert
    Maximum
    Increase-key

    Il mio problema é ke nn trovo i rispettivi algoritmi da nessuna parte, manco sul libro o slide.
    Se qualcuno puo darmi un consiglio ve ne sarei veramente grato.
    Grazie mille!

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    577
    prova a vedere queste implementazioni http://www.algoteam.di.unimi.it/impl...ici/rbtree.txt

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    48
    Grazie, le terrò presenti per una correzione alle funzioni rbtree, pero qll per la coda di priorità non ci sono.

  4. #4
    Una coda di priorità è una struttura dati astratta, che si costruisce su altre strutture dati concrete.
    Se vuoi puoi tranquillamente basare la coda di priorità sull'RB tree (usando il valore di ciascun elemento come chiave), le operazioni si mappano in maniera ovvia:
    • maximum => ultimo elemento dell'RB tree (prendi sempre il ramo destro finché non arrivi ad una foglia);
    • extractmax => togli l'ultimo elemento dell'RB tree e ribilanci;
    • insert => normale inserimento in RB tree;
    • increase-key => trovi l'elemento dall'albero e lo reinserisci con la chiave aggiornata.

    Tutte queste operazioni sono O(log n).

    Spesso comunque una priority queue viene implementata come un heap di qualche genere, che in genere fornisce prestazioni asintotiche migliori per una o più delle operazioni che hai citato (vedi qui).
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    48
    Grazie mille, scusa se nn ho risp subito ma in effetti, ragionandoci un po e vedendo le regole di un albero redblack, ci sono arrivato anke io alle conclusioni cosi logiche xD.

  6. #6
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.