/*main.cpp*/#include"bittree.h"intmain(){
BitNode* bn;int i, e, state, num,p;printf("请输入二叉树结点的个数:");scanf("%d",&num);printf("请输入根节点的元素值:");scanf("%d",&e);
bn=createTree(e,NULL,NULL);for(i =1; i < num; i++){printf("\n第%d个结点插入的位置为:\n""1、作为根节点的左子树\n""2、作为根节点的右子树\n""3、作为根节点左子树的左子树\n""4、作为根节点左子树的右子树\n""5、作为根节点右子树的左子树\n""6、作为根节点右子树的右子树\n""(1~6):",i+1);scanf("%d",&p);printf("请输入节点的元素值:");scanf("%d",&e);switch(p){case1: state=insertLeftChild(bn, e, bn);break;case2: state=insertRightChild(bn, e, bn);break;case3:state=insertLeftChild(bn, e, bn->lchild);break;case4:state=insertRightChild(bn, e, bn->lchild);break;case5:state=insertLeftChild(bn, e, bn->rchild);break;case6:state=insertRightChild(bn, e, bn->rchild);break;default:break;}if(state ==0)i--;}printf("先序遍历二叉树:");preTraverseTree(bn, tprint);printf("\n");printf("中序遍历二叉树:");inTraverseTree(bn, tprint);printf("\n");printf("后序遍历二叉树:");postTraverseTree(bn, tprint);printf("\n");printf("层序遍历二叉树:");levelTraverseTree(bn);printf("\n\n");printf("删除节点所在的位置为:\n""1、作为根节点的左子树\n""2、作为根节点的右子树\n""3、作为根节点左子树的左子树\n""4、作为根节点左子树的右子树\n""5、作为根节点右子树的左子树\n""6、作为根节点右子树的右子树\n""(1~6):");scanf("%d",&p);switch(p){case1:deleteLeftTree(bn, bn);break;case2:deleteRightTree(bn, bn);break;case3:deleteLeftTree(bn, bn->lchild);break;case4:deleteRightTree(bn, bn->lchild);break;case5:deleteLeftTree(bn, bn->rchild);break;case6:deleteRightTree(bn, bn->rchild);break;default:break;}printf("先序遍历二叉树:");preTraverseTree(bn, tprint);printf("\n");printf("中序遍历二叉树:");inTraverseTree(bn, tprint);printf("\n");printf("后序遍历二叉树:");postTraverseTree(bn, tprint);printf("\n");printf("层序遍历二叉树:");levelTraverseTree(bn);printf("\n");return1;}