0

Treap データ構造を使用して動的グラフを実装しようとしています。

ノード構造は次のとおりです。

    class TreapNode
    {
        public:
                int key;
                int priority;
                TreapNode* left, *right;
                vector<int> neighbourNode;
                
                TreapNode(int key)
                {
                    this->priority = 0;
                    this->key = key;
                    this->left  = nullptr;
                    this->right = nullptr;
                }
                
                TreapNode()
                {}
                
                TreapNode* addNode(TreapNode*&,int);
                void updateNode(TreapNode*&,int,int);
     };          
     

特定のノードに隣接ノードを追加したい場合、

  1. vector<int> neighbourNode次のように、ノード を検索し、次の方法でノードを介して検索する隣接ノードを追加します updateNode()

searchAddress->neighbourNode.push_back(x);

しかし、私の教授は、のアドレスをvector<int> neighbourNodeノードに保存すると言います。

  1. TreapNode のサイズを小さくすることはできますか?
  2. アドレスを保存してアクセスする方法は?TreapNode クラスでこの方法を試しましたが、neighbourNode未定義のエラーが発生しています。

int* neighbourNodeAddress = neighbourNode.data()

誰でも私を助けることができますか?

4

0 に答える 0