#includeusing namespace std;typedef struct BiTNode{ char data; struct BiTNode *lchild,rchild;}BiTNode,BiTree; //创建二叉树 void CreatTree(BiTree &T) { char ch; cin>>ch; if(ch=='#') T=NULL; else { T=new BiTNode; T->data=ch; CreatTree(T->lchild); CreatTree(T->rchild); }} //先序遍历 void PreorderTree(BiTree T) { if(T) { cout<data<<" "; PreorderTree(T->lchild); PreorderTree(T->rchild); } } //中序遍历 void InorderTree(BiTree T) { if(T) { InorderTree(T->lchild); cout<data<<" "; InorderTree(T->rchild); } } //查找 int FindBT(BiTree T,char ch) { if(T) { if(T->data==ch) return 1; int p=FindBT(T->lchild,ch); if(p) { return 1; } p=FindBT(T->rchild,ch); if(p) { return 1; } return 0; } else return 0;} ///删除节点void Destroy(BiTree &T) { if(T->lchild) { free(root); r=NULL; return; } else { parent=parent_Node(root,T) if(parent->lchild==T) parent->lchild==NULL; else parent->rchild==NULL; free(T); }}/ //删除 二叉树 void DestroyT(BiTree &T){ if(T->lchild) DestroyT(T->lchild); if(T->rchild) DestroyT(T->rchild); return;} int main() { BiTree T; char f; cout<<"创建二叉树" <<endl; CreatTree(T); cout<<"中序遍历:"; InorderTree(T); cout<<endl; cout<<"查找:"; cin>>f; cout<<FindBT(T,f)<<endl; / cout<<"删除节点p"<<endl; Destroy(T); cout<<"先序遍历:"; PreorderTree(T); cout<<endl; */ cout<<"删除二叉树"<<endl; DestroyT(T); return 0; }
不知道你这个问题是否已经解决, 如果还没有解决的话: