bbaum



  • hallo

    wie sieht die implementierung von einem Node in einem B-Baum aus.
    kann mir da jemand weiter helfen??



  • man macht das über Pointer

    ich hab mal ein Beispiel geschrieben (ist nicht sehr gut, soll dir nur zeigen, wie das ungefähr geht)

    template<class T>
    class baum
    {
      static const size_t nodes=2;
      static const size_t height=5;
      size_t pos;
      baum *node[nodes];
      T obj;
    public:
      baum() :pos(0) { memset(node,NULL,sizeof(baum*)); }
      baum(const T& o) : obj(o),pos(0) { memset(node,NULL,sizeof(baum*)); }
      baum(const T& o,size_t p) : obj(o),pos(p) { memset(node,NULL,sizeof(baum*)); }
      ~baum()
      {
        for(size_t i=0;i<nodes;++i) 
          delete node[nodes];
      }
      bool addnode(const T& o)
      {
        if(p==height)
          return false;
        for(size_t i=0;i<nodes;++i)
          if(node[i])
          {
            node[i]=new baum(o,++p);
            return true;
          }
        for(size_t i=0;i<nodes;++i)
          if(node[i].addnote(o))
            return true;
        return false;
      }
    };
    

Anmelden zum Antworten