/* quote from Stanford cs106b, programming abstractions in c++ */
#include <iostream>
#include <string>
using namespace std;
struct nodeT {
string key;
nodeT *left, *right;
};
nodeT *FindNode(nodeT *t, string key) {
if (t == NULL) return NULL;
if (key == t->key) return t;
if (key < t->key) {
return FindNode(t->left, key);
} else {
return FindNode(t->right, key);
}
};
void InsertNode(nodeT * & t, string key) {
if (t == NULL) {
t = new nodeT;
t->key = key;
t->left = t->right = NULL;
return;
}
if (key == t->key) return;
if (key < t->key) {
InsertNode(t->left, key);
} else {
InsertNode(t->right, key);
}
}
void DisplayTree(nodeT *t) {
if (t != NULL) {
DisplayTree(t->left);
cout << t->key << endl;
DisplayTree(t->right);
}
}
int main()
{
nodeT *dwarfTree = NULL;
InsertNode(dwarfTree, "Grumpy");
InsertNode(dwarfTree, "Sleepy");
InsertNode(dwarfTree, "Doc");
InsertNode(dwarfTree, "Bashful");
InsertNode(dwarfTree, "Dopey");
InsertNode(dwarfTree, "Happy");
InsertNode(dwarfTree, "Sneezy");
DisplayTree(dwarfTree);
return 0;
}
BST(Binary Search Tree) demo, quote from Stanford cs106b course reader
最新推荐文章于 2022-10-24 22:28:00 发布