私は昨日何かを投稿し、開始するための助けを得ました。そして、もうすぐそこにいるような気がします. プライマリ キーを名前として、セカンダリ キーをその人物の重みとして BST を作成しました。最小の重み (2 次キー) を検索することを除いて、必要なすべてを完了することができました。最小重量を検索する私の方法は事前注文トラバーサルであり、すべての重量が画面に正しく出力されます。どれが今最も低いかを判断するためのテクニックは何ですか? 私はいくつかの異なる if ステートメントを試し、minwt int を作成しましたが、うまくいきません (再帰と関係があると思います)。とにかく、ここにコードがあります。いつものように、どんな助けも大歓迎です。ありがとう。
#include <iostream>
using namespace std;
class tNode
{
public:
string name;
int wt;
tNode *left, *right;
tNode()
{
left = right = 0;
}
tNode(string name, int wt, tNode *l = 0, tNode *r = 0)
{
this->name = name;
this->wt = wt;
left = l;
right = r;
}
};
class bSTree
{
public:
tNode *root;
bSTree()
{
root = 0;
}
bool add(string name, int wt)
{
tNode *temp = root, *prev = 0;
while (temp != 0)
{
prev = temp;
if (name < temp->name)
{
temp = temp->left;
}
else
{
temp = temp->right;
}
}
if (root == 0)
{
root = new tNode(name, wt);
}
else if (name < prev->name)
{
prev->left = new tNode(name, wt);
}
else if (name > prev->name)
{
prev->right = new tNode(name, wt);
}
else
{
return false;
}
return true;
}
void searchWeight(tNode* temp)
{
// DETERMINE LOWEST WEIGHT CONTAINED IN TREE
if (temp != 0)
{
cout << temp->wt << endl;
searchWeight(temp->left);
searchWeight(temp->right);
}
}
};