Advertisement
Guest User

Untitled

a guest
Jun 20th, 2017
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
CFDG 2.09 KB | None | 0 0
  1. /*
  2. Praxiseinheit 5 - B-Baum
  3.  
  4. Realisierung eines B-Baum mit Hilfe eines ADTs BTree. Implementieren folgender öffentlicher Methoden:
  5.              • insert(int key) - Einfügen eines Schlüssels key
  6.              • exists(int key) - gibt true zurück wenn key im B-Baum vorhanden ist
  7.              • remove(int key) - Entfernen des Schlüssels key
  8.  
  9. Hinweise
  10.         • Implementieren eines geeigneten Konstruktors, um die Ordnung M des B-Baums als Argument
  11.           sowie einen passenden Destruktor zu übergeben
  12.         • Einfüge- und Löschverfahren: aus Vorlesung vorgestellte Algorithmen und Definitionen anwenden
  13.         • Organisation und Verwaltung der Schlüssel innerhalb eines B-Baum-Knotens ist freigestellt.
  14.         • Schlüssel müssen sortiert sein
  15. */
  16.  
  17.  
  18.  
  19. //Grundstruktur des B-Baums
  20. class BTree
  21. {
  22.  typedef struct bnode;              // Vorwärtsdeklaration von bnode
  23.  
  24.  struct keyNode                     // Schlüssel-Knoten für jeden Schlüssel eines B-Baumknotens
  25.               {                  
  26.                int key;             // Schlüssel
  27.                data* info;          // Zeiger auf eigentliche Daten
  28.                bnode* right;        // rechter Teilbaum mit größeren Elementen als key
  29.                };
  30.  
  31.  struct bnode                       // eigentlicher B-Baumknoten
  32.               {
  33.               bnode* left;          // linker Teilbaum
  34.               keyNode *iNode;      // Speicher auf beliebige Anzahl solcher Elemente
  35.               };
  36.              
  37.                bnode *feld;
  38.  
  39.              
  40.  public:
  41.        
  42.               BTree(int m)                        //  Konstruktor
  43.                    {
  44.                    feld = new bnode;
  45.                    }
  46.                    feld->inode = new keynode[m]; // für Feldgröße
  47.  
  48.               ~BTree()                           // Destructor
  49.                     {
  50.                     while(feld!=NULL)
  51.                     {
  52.                     node * temp = feld;
  53.                     feld = feld->next;
  54.                     delete temp;
  55.                     }
  56.                     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement