私は C プログラミングは初めてで、C で C アルゴリズムを学んでいます。
node
二分木データ構造を定義する方法に関する私の問題は次のとおりです。
親ノード ポインタを使用するか使用しないか
Node
データ構造を定義するための 2 つの典型的なサンプル コードを次に示します。
親ノードポインタなし
typedef struct binaryTreeNode_{
int key;
void *data;
binaryTreeNode_ *leftNode;
binaryTreeNode_ *rightNode;
} binaryTreeNode;
親ノードポインタあり
typedef struct binaryTreeNode_{
int key;
void *data;
binaryTreeNode_ *leftNode;
binaryTreeNode_ *rightNode;
binaryTreeNode_ *parentNode;
} binaryTreeNode;
私の質問
明らかに、親ノード ポインターでノード構造を使用すると、多くの作業がはるかに簡単になります。ノード/ツリー、バイナリ ツリーを使用した DFS/BFS をトラバースするように。だから私の質問は、親ノードのない構造に基づくいくつかのソリューションがあるのはなぜですか? .
歴史的な理由はありますか?単純に RAM/DISK 容量の制限があるのであれば、親ノードを持たないソリューションはやめてもいいのではないでしょうか?
関係ないかも
Linked ListやDoublely Linked List と同様に、 andを実装するためにDoublely Linked Listを使用する必要がStack
ありQueue
ますか?