#include
// Node structure constructORTYPEDEF STRUCT BT {ElementType Data; Struct Bt * lchild, * rchild;} binarytreenode, * btroot;
// Function decLearinorder (btroot root); preorder (btroot root); PostORDER (BTROOT ROOT);
// the main function to exchangemain () {btroot r = malloc (sizeof (binarytreenode)); CreateTree (R, 1); Printf ("/ npreorder:"); Preorder (R); Printf ("/ ninorder:") Inorder (r); Printf ("/ NPOSTOR:"); PostORDER (R); While (1); return 0;}
// inorder functioninorder (btroot root) {if (! root) return 0; inorder (root-> lchild); Printf ("% 4D", root-> data); inorder (root-> rchild);}
// Preorder FunctionPreorder (BTROOT ROOT) {if (! root) Return 0; Printf ("% 4D", root-> data); preorder (root-> lchild); preorder (root-> rchild);}
// PostORDER FUNCTIONPOSTORDER (BTROOT ROOT) {if (! root) Return 0; Postorder (root-> lchild); postorder (root-> rchild); Printf ("% 4D", root-> data);} / * Receive The INPUT DATA and CREATE A Node Each Time! * / CreateTree (BTROOT ROOT, INT NODENUM) / * Preorder * / {ElementType X; INT I, LAYER;
Layer = log (nodenum) / log (2) 1; Printf ("/ Ninput Data for Node% D in layer% D:", Node, Layer; Scanf ("% D", & X); root-> data = x;
Printf ("CREATE LCHILD for NODE% D IN LAYER% D (0 for no)?", nodenum, layer; scanf ("% d", & i); if (i == 0) root-> lchild = null; Else {root-> lchild = (btroot) malloc (sizeof (binarytreenode)); CreateTree (root-> lchild, 2 * nodenum);