木構造データベースの初期化のやりかたについておしえていただけないでしょうか。
public ref class a
{
private: b ^ atop;
//コンストラクタ
public:
a(void)
{
atop = (gcnew b());
atop->SetTopi(1);
atop->SetTopPrev(atop);
}
}
public ref class b
{
private: System::String ^ data;
private: a ^ next;
private: a ^ prev;
private: int i;
//コンストラクタ
public:
a(void)
{
this->data = 初期値;
this->next = (gcnew a());
this->next->prev = this;
this->next->i = this->i++;
}
}
クラスaの後ろにクラスb型がいくつもつらなっているイメージです。クラスbも
枝分かれしているイメージです。どうやって初期化していいのかわからないので
教えてください。
初期化というと、節も枝もない木でしょ。
ならば:
a^ root = nullptr;
これでおしまいちゃいますの?
クラスbのdataのところにいくぶん初期データがある場合の初期化を考えています。
クラスbのしたにクラスcがある場合とか。
# そんなこと、最初のスレでは'一言も'述べてないやん。 質問ヘタすぎ。
a^ root = gcnew a();
そのあとroot配下にbを繋ぐpublicメソッドが定義されていないのでムリ。
setNode(b^ node) があるなら、
a^ root = gcnew a();
root->setNode(gcnew b());
以下同様。
すいません、自分でもなにを質問したらいいかわかってませんでした。
本当に知りたかったのは、木構造データベースの初期データをどういう
風にしてセットすることができるのかということです。
コードの中にべたで書く以外ないのでしょうか。それともテキストファイル
に構造がわかるようなフォーマットで書いたものを読み込む以外ないで
しょうか?
なにかうまい方法はないでしょうか。
とりあえず、実装方法の見当がついているようですが、
その方法はどのへんがうまくないのですか?
また、逆にどういう方法ならうまいと思うのですか?
> コードの中にべたで書く以外ないのでしょうか。それともテキストファイル
> に構造がわかるようなフォーマットで書いたものを読み込む以外ないで
> しょうか?
どっちでもできます。つか、できるように実装します。
木構造のデータをファイルにどういう形でもっていたらいいのかが、うまく
イメージできません。なにかいいアイデアはないでしょうか?
//コードの内部イメージ
root--a1--b1---c1
b2
a2--b3
b4
b5
//ファイルのイメージ
a1,b1,c1
a1,b2
a2,b3
a2,b4
a2,b5
これでよくない?
root,a1
root,a2
a1,b1
a1,b2
b1,c1
a2,b3
a2,b4
a2,b5
他の方法でも、もちろんよいけど。
<?xml version='1.0' ?>
<node name='root'>
<node name='a1'>
<node name='b1'>
<node name='c1' />
</node>
<node name='b2' />
</node>
<node name='a2'>
<node name='b3' />
<node name='b4' />
<node name='b5' />
</node>
<node>
ほんでもってXML-DOMparserに食わせば木構造ができています。
ありがとうございます。
ためしにやってみます。