首页 > 其他分享 >二叉树一点操作

二叉树一点操作

时间:2023-04-03 11:14:53浏览次数:35  
标签:return int BiTree 二叉树 printf 操作 rchild 一点 data

#include <stdio.h>
#include <stdlib.h>
typedef struct Tree{
    int data;
    struct Tree *lchild,*rchild;
}Tree,*BiTree;

BiTree CreateLink(){
    int data;
    int temp;
    BiTree T;
    scanf("%d",&data);
    temp = getchar();
    if(data == -1)
    return NULL;
    else{
        T = (BiTree)malloc(sizeof(Tree));
        T->data = data;
         printf("请输入%d的左子树\n",data);
         T->lchild = CreateLink();
         printf("请输入%d的右子树\n",data);
         T->rchild = CreateLink();
         return T;
    }
}
void firstbl(BiTree T){
    if(T == NULL){
        return;
    }
    printf("%d ",T->data);
    firstbl(T->lchild);
    firstbl(T->rchild);
}
void betweenbl(BiTree T){
    if(T == NULL){
        return;
    }
    betweenbl(T->lchild);
    printf("%d ", T->data);
    betweenbl(T->rchild);
}
void lastbl(BiTree T){
    if(T == NULL){
        return;
    }
    lastbl(T->lchild);
    lastbl(T->rchild);
    printf("%d ", T->data);
}
int depth(BiTree T) {
    if (T == NULL) {
        return 0;
    }
    int ldepth = depth(T->lchild);
    int rdepth = depth(T->rchild);
    return (ldepth > rdepth) ? (ldepth + 1) : (rdepth + 1);
}
int main()
{
    int de;
    BiTree S;
    printf("请输入第一个节点的数据:\n");
    S = CreateLink();
    printf("先序遍历的结果为:\n");
    firstbl(S);
    printf("\n");
    printf("中序遍历的结果为:\n");
    betweenbl(S);
    printf("\n");
    printf("后序遍历的结果为:\n");
    lastbl(S);
    printf("\n");
    de = depth(S);
    printf("此二叉树的深度为:%d ",de);
    return 0;
}

 

          

标签:return,int,BiTree,二叉树,printf,操作,rchild,一点,data
From: https://www.cnblogs.com/TruthThoughts/p/17282469.html

相关文章

  • C# 压缩与解压操作
    依赖:.NETFramework4.5及以上,引用-添加引用-程序集System.IO.CompressionSystem.IO.Compression.FileSystem 针对文件夹的最简单的压缩与解压缩1、目录必须存在2、无法覆盖文件 publicstaticvoidDoZipFile(List<string>AllFiles,stringFileDir,stringOutputDi......
  • 大数据学习之Hbase shell的基本操作
    HBase的命令行工具,最简单的接口,适合HBase管理使用,可以使用shell命令来查询HBase中数据的详细情况。安装完HBase之后,启动hadoop集群(利用hdfs存储),启动zookeeper,使用start-hbase.sh命令开启hbase服务,最后在shell中执行hbaseshell就可以进入命令行界面Habseshell的help对语法的介绍......
  • 二叉树的前序遍历
    LeetCode|144二叉树的前序遍历给你二叉树的根节点root,返回它节点值的 前序 遍历。示例1:1\2/3输入:root=[1,null,2,3]输出:[1,2,3]示例2:输入:root=[]输出:[]示例3:输入:root=[1]输出:[1]示例4:1/2输入:root=......
  • Python ORM Pony 常用操作(增删改查)
    Pony是一个高级的对象关系映射器ORM框架。Pony它能够使用Python生成器表达式和lambdas向数据库编写查询。Pony分析表达式的抽象语法树,并将其转换为SQL查询。支持SQLite,MySQL,PostgreSQL和Oracle等数据库,本文主要介绍PythonORMPony中常用操作,及数据增加、删除、修改和查询。......
  • day17| 110.平衡二叉树;257.二叉树的所有路径;404.左叶子之和
    110.平衡二叉树 自顶向下递归 1.获得计算二叉树高度的函数2.对于遍历到的节点,首先计算左右子树的高度,看是否平衡3.在分别遍历到左右子树,判断左子树和右子树是否平衡 代码如下:classSolution:defisBalanced(self,root:TreeNode)->bool:defhei......
  • day16| 222.完全二叉树的节点个数
    104和111题见前一天 222.完全二叉树的节点个数 题目简述:给你一棵完全二叉树的根节点root,求出该树的节点个数。完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层......
  • Day 20 20.3 数据库之Python操作MySQL
    Python操作MySQLimportpymysql#打开数据库连接db=pymysql.connect(host='localhost',user='root',passwd='...',port=3306,datebase='...')print('连接成功!')#使用cursor()方法创建一个游标对象cursorcursor=db.cursor()#......
  • Day 21 21.2 数据库之Python操作redis
    Python操作redis(1)连接redis#方式1importredisr=redis.Redis(host='127.0.0.1',port=6379)r.set('foo','Bar')print(r.get('foo'))#方式2importredispool=redis.ConnectionPool(host='127.0.0.1',port=63......
  • Day 21 21.4 数据库之Python操作MongoDB
    PyMongo在这里我们来看一下Python3下MongoDB的存储操作,在本节开始之前请确保你已经安装好了MongoDB并启动了其服务,另外安装好了Python的PyMongo库。安装:pipinstallpymongo添加文档importpymongoclient=pymongo.MongoClient(host='localhost',port=27017)"""......
  • 226. 翻转二叉树
    给你一棵二叉树的根节点root,翻转这棵二叉树,并返回其根节点。classSolution{public:TreeNode*invertTree(TreeNode*root){if(root==nullptr)returnnullptr;else{TreeNode*node=root->left;root->left=root->righ......