#include <iostream> using namespace std; typedef struct x { int value; struct x *L, *R; } leaf;
void insert(leaf *¤tLeaf, int val) { if (currentLeaf == NULL) { currentLeaf = new leaf; currentLeaf->value = val; currentLeaf->L = NULL; currentLeaf->R = NULL; } else { if (val < currentLeaf->value) { insert(currentLeaf->L, val); } else { insert(currentLeaf->R, val); } } }
void printPreOrder(leaf *currentLeaf) { if (currentLeaf == NULL) { return; } cout << currentLeaf->value << " "; printPreOrder(currentLeaf->L); printPreOrder(currentLeaf->R); } void printInOrder(leaf *currentLeaf) { if (currentLeaf == NULL) { return; } printInOrder(currentLeaf->L); cout << currentLeaf->value << " "; printInOrder(currentLeaf->R); } void printPostOrder(leaf *currentLeaf) { if (currentLeaf == NULL) { return; } printPostOrder(currentLeaf->L); printPostOrder(currentLeaf->R); cout << currentLeaf->value << " "; }
#include <iostream> using namespace std; typedef struct x { int value; struct x *L, *R; } leaf; void insert(leaf *¤tLeaf, int val) { if (currentLeaf == NULL) { currentLeaf = new leaf; currentLeaf->value = val; currentLeaf->L = NULL; currentLeaf->R = NULL; } else { if (val < currentLeaf->value) { insert(currentLeaf->L, val); } else { insert(currentLeaf->R, val); } } } void printPreOrder(leaf *currentLeaf) { if (currentLeaf == NULL) { return; } cout << currentLeaf->value << " "; printPreOrder(currentLeaf->L); printPreOrder(currentLeaf->R); } void printInOrder(leaf *currentLeaf) { if (currentLeaf == NULL) { return; } printInOrder(currentLeaf->L); cout << currentLeaf->value << " "; printInOrder(currentLeaf->R); } void printPostOrder(leaf *currentLeaf) { if (currentLeaf == NULL) { return; } printPostOrder(currentLeaf->L); printPostOrder(currentLeaf->R); cout << currentLeaf->value << " "; } int main(int argc, char** argv) { leaf *treeRoot = NULL; insert(treeRoot, 10); insert(treeRoot, 3); insert(treeRoot, 8); insert(treeRoot, 7); insert(treeRoot, 20); insert(treeRoot, 5); cout << "Pre-order: "; printPreOrder(treeRoot); cout << endl; cout << "In-order: "; printInOrder(treeRoot); cout << endl; cout << "Post-order: "; printPostOrder(treeRoot); cout << endl; return 0; }
Pre-order: 10 3 8 7 5 20 In-order: 3 5 7 8 10 20 Post-order: 5 7 8 3 20 10