首页 > 代码库 > 20140510 二叉树的建立 先序 后序 中序 比较
20140510 二叉树的建立 先序 后序 中序 比较
#include<stdio.h> #include<malloc.h> typedef struct node { int data; struct node *lchild,*rchild; }; node * create()//先序建立二叉树,根左右 { int x=0; node *t; printf(" input data:"); scanf("%d",&x); if(x==0) t=NULL; else { t=(node *)malloc(sizeof(node)); t->data=http://www.mamicode.com/x; t->lchild=create(); t->rchild=create(); } return t; } void preorder(node *root) //先序遍历二叉树 { if(root!=NULL) printf("%d ",root->data); else return; preorder(root->lchild); preorder(root->rchild); } void inorder(node *root) { if(root==NULL) return; else { inorder(root->lchild); printf("%d ",root->data); inorder(root->rchild); } } void postorder(node *root)//后序遍历二叉树 { if(root==NULL) return; else { postorder(root->lchild); postorder(root->rchild); printf("%d ",root->data); } } int CompTree(node* tree1,node* tree2)//比较两棵二叉树,相同返回1;否则返回2 { if(tree1 == NULL && tree2 == NULL)//两棵树都为空的情况,判定为相等 return 1; if(tree1 != NULL && tree2 != NULL)// { if(tree1->data =http://www.mamicode.com/= tree2->data)//两种情况都要考虑 { if(CompTree(tree1->lchild, tree2->lchild) && CompTree(tree1->rchild, tree2->rchild) || CompTree(tree1->rchild, tree2->lchild) && CompTree(tree1->lchild, tree2->rchild)) { return 1; } } } return 0; } void main() { node *root1=create(); node *root2=create(); preorder(root1); printf("\n"); inorder(root1); printf("\n"); postorder(root1); printf("\n"); preorder(root2); printf("\n"); inorder(root2); printf("\n"); postorder(root2); printf("\n"); if(CompTree(root1,root2)) printf("两棵树相同\n"); else printf("两棵树不相同\n"); }
2、含有纯虚函数的类是不能创建对象的,否则会出错
原因是:纯虚函数是没有定义的,没有定义的类是不可实例化一个对象的。
3、纯虚函数等于0,含有纯虚函数的类就是抽象类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。