码迷,mamicode.com
首页 > 其他好文 > 详细

20140510 二叉树的建立 先序 后序 中序 比较

时间:2014-05-11 01:19:08      阅读:311      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   java   color   

bubuko.com,布布扣
#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=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 == 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");
}
bubuko.com,布布扣

2、含有纯虚函数的类是不能创建对象的,否则会出错

原因是:纯虚函数是没有定义的,没有定义的类是不可实例化一个对象的。

3、纯虚函数等于0,含有纯虚函数的类就是抽象类

20140510 二叉树的建立 先序 后序 中序 比较,布布扣,bubuko.com

20140510 二叉树的建立 先序 后序 中序 比较

标签:style   blog   class   code   java   color   

原文地址:http://www.cnblogs.com/yexuannan/p/3721049.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!