0
我必須編寫一些代碼,以字母順序自動將單詞添加到二叉樹。我知道我必須加入循環和更多的陳述,我只是不知道在哪裏。
如果單詞按字母順序變小,則應該向左,否則向右。按字母順序排序的二叉樹
這是我到目前爲止的代碼:
struct node
{
string info;
node* right;
node* left;
}; //closes node
class States
{
private:
node* start;
public:
void insert();
void delete();
void list();
void search();
States();
}; //closes States class
States::States()
{
start = new node;
start -> left = NULL;
start -> right = NULL;
start -> info = ' ';
}
void States::insert()
{
string state;
char c;
node *temp, *p, *s;
p = start;
s = start;
cout<<"Please enter the state you want to add: ";
cin>>state;
if(s -> info == ' ')
{
s -> info = state;
cout<<"Added state "<<state<<"to the list.\n";
cout<<"Ready to continue? (enter y)";
cin>>c;
return;
}//close if
else
{
temp = new node;
temp ->info = state;
if(s->info > temp->info)
{
p = p-> left;
if(
p = s -> left;
}//close if
}//close else
}//close insert function
非常感謝!這有助於我和我得到它的工作,現在我在我的下一個問題,所有州的字母列表。 – dave
這似乎很簡單。假設最左邊的節點將是你的第一個狀態,它將會是你的樹從左到右的遍歷。這可以通過遞歸算法或循環分解爲遍歷子樹。 – bstockwell