关闭

二叉树的建立和遍历

193人阅读 评论(0) 收藏 举报
分类:
//建立二叉树并输出每个字符所在的层数

#include<stdio.h>
#include<stdlib.h>

typedef char ElemType;

typedef struct BiTNode
{
    char data;
    struct BiTNode *lchild,*rchild;
} BiTNode,*BiTree;

//创建一棵二叉树,约定用户遵照前序遍历的方式输入数据
void CreateBiTree(BiTree *T)
{
    char c;

    scanf("%c",&c);
    if(' '==c)
    {
        *T=NULL;
    }
    else
    {
        *T=(BiTNode *)malloc(sizeof(BiTNode));
        (*T)->data=c;
        CreateBiTree(&(*T)->lchild);
        CreateBiTree(&(*T)->rchild);
    }
}

//访问二叉树结点
void visit(char c,int level)
{
    printf("%c位于%d层\n",c,level);
}

//前序遍历二叉树
void PreOrderTraverse(BiTree T,int level)
{
    if(T)
    {
        visit(T->data,level);//先根
        PreOrderTraverse(T->lchild,level+1);//中左
        PreOrderTraverse(T->rchild,level+1);//后右
    }
}

int main()
{
    int level=1;
    BiTree T=NULL;

    CreateBiTree(&T);
    PreOrderTraverse(T,level);

    return 0;
}

这里写图片描述

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:33710次
    • 积分:844
    • 等级:
    • 排名:千里之外
    • 原创:50篇
    • 转载:18篇
    • 译文:0篇
    • 评论:3条
    最新评论