1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| #include <iostream> #include <stdlib.h>
using namespace std;
typedef struct TreeNode { int data; struct TreeNode *LT, *RT; }TreeNode, *TreeList;
TreeNode* creatTree(int pData){ TreeNode *tree = (TreeNode*)malloc(sizeof(TreeNode)); tree->data = pData; tree->LT = NULL; tree->RT = NULL; return tree; }
int addLeaf(TreeList &node, int deep){ char input; cin >> input; if(input != '#'){ node = creatTree((int)input); addLeaf(node->LT, deep + 1); addLeaf(node->RT, deep + 1); } else{ node = NULL; } return 1; }
int treeInfo(TreeNode *tree, int deep){ cout << "deep: " << deep << ", data: " << (char)tree->data << endl; if (tree->LT != NULL) treeInfo(tree->LT, deep + 1); if (tree->RT != NULL) treeInfo(tree->RT, deep + 1); return 0; }
TreeNode *findValue(TreeNode *node, int value){ if (node == NULL) return NULL; if (node->data == value) { cout << "ok, find it." << endl; return node; } else return findValue(node->data < value ? node->RT : node->LT, value); return NULL; }
int main(){ char data; TreeList tree, temp; addLeaf(tree, 0); cout << "start out info:" << endl; treeInfo(tree, 0); cout << "end out info" << endl; cout << "input a num to find: "; cin >> data; temp = findValue(tree, data); if (!temp) cout << "no find it." <<endl; else cout << "find in " << &temp << ", data: " << (char)temp->data << endl;
}
|