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