非线性结构之二叉树

二叉树的建立和遍历

#include<stdio.h>
#include<malloc.h>
#include<string.h>
 
typedef struct tree{

    int data;
    struct tree *leftNode;
    struct tree *rightNode;
}tree;

tree * createTree();
void proTraversal(tree *root);
void InoTraversal(tree *root);
void posTraversal(tree *root);

int main()
{
    tree *root;
    root = createTree();
    printf("先序遍历:\n");
    proTraversal(root);
    printf("中序遍历:\n");
    InoTraversal(root);
    printf("后序遍历:\n");
    posTraversal(root);
    return 0;
}


tree * createTree()
{
    tree *root,*pn1,*pn2,*pn3,*pn4,*pn5,*pn6 = NULL;
    //存储节点
    root=(tree *)malloc(sizeof(tree));
    root->data = 0;
    pn1=(tree *)malloc(sizeof(tree));
    pn1->data = 1;
    pn2=(tree *)malloc(sizeof(tree));
    pn2->data = 2;
    pn3=(tree *)malloc(sizeof(tree));
    pn3->data = 3;
    pn4=(tree *)malloc(sizeof(tree));
    pn4->data = 4;
    pn5=(tree *)malloc(sizeof(tree));
    pn5->data = 5;
    pn6=(tree *)malloc(sizeof(tree));
    pn6->data = 6;
    //存储关系
    root->leftNode = pn1;
    root->rightNode = pn2;
    pn1->leftNode = pn3;
    pn1->rightNode = pn4;
    pn2->leftNode = pn5;
    pn2->rightNode = pn6;
    
    pn3->leftNode = NULL;
    pn3->rightNode = NULL;
    pn4->leftNode = NULL;
    pn4->rightNode = NULL;
    pn5->leftNode = NULL;
    pn5->rightNode = NULL;
    pn6->leftNode = NULL;
    pn6->rightNode = NULL;

    //返回头节点
    return root;
}

void proTraversal(tree *root)
{
    if(root!=NULL)
    {
        printf("%d\n",root->data);
        proTraversal(root->leftNode);
        proTraversal(root->rightNode);
    }
}

void InoTraversal(tree *root)
{
    if(root!=NULL)
    {
        InoTraversal(root->leftNode);
        printf("%d\n",root->data);
        InoTraversal(root->rightNode);
    }
}

void posTraversal(tree *root)
{
    if(root!=NULL)
    {
        posTraversal(root->leftNode);
        posTraversal(root->rightNode);
        printf("%d\n",root->data);
    }
}

阅读更多
个人分类: 数据结构&&算法
想对作者说点什么? 我来说一句

数据结构-二叉树及存储结构

2017年04月09日 470KB 下载

没有更多推荐了,返回首页

不良信息举报

非线性结构之二叉树

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭