zoukankan      html  css  js  c++  java
  • 【数据结构】郝斌数据结构——笔记07

    树 Tree

    概念:

    1、根节点,该节点上,没有父节点

    2、子节点,存在与根节点下,数量若干,但只能有一个父节点

    3、由【节点】和【边】组成

    4、深度,从根节点到最低层节点的层数称为深度

    5、叶子节点,该节点无子节点

    6、非终端节点,上有老,下有小

    7、度,子节点个数

    分类:

    1、一般树,子节点的个数无限制

    2、二叉树,子节点个数最多2个,且子节点位置不可更改

    3、森林,N个互不相交的树的集合

    二叉树:

    1、一般二叉树

    2、满二叉树

    3、完全二叉树

    #include <stdio.h>
    #include <stdlib.h>
    #include <malloc.h>
    
    typedef struct BalanceTreeNode {
        int data;
        struct BalanceTreeNode * pLeftNode;
        struct BalanceTreeNode * pRightNode;
    } BtNode, * PBtNode;
    
    PBtNode createBalanceTreeNode(int data);
    void traverseTree(PBtNode root);
    
    int main() {
    
        PBtNode root = createBalanceTreeNode(0);
        PBtNode b = createBalanceTreeNode(12);
        PBtNode c = createBalanceTreeNode(33);
        PBtNode d = createBalanceTreeNode(55);
        PBtNode e = createBalanceTreeNode(23);
    
        root -> pLeftNode = b;
        root -> pRightNode = c;
        c -> pLeftNode = d;
        d -> pLeftNode = e;
    
        traverseTree(root);
    
        return 0;
    }
    
    /**
     * 创建树节点
     * @param data 
     * @return 
     */
    PBtNode createBalanceTreeNode(int data) {
        PBtNode pNewBtNode = (PBtNode)malloc(sizeof(BtNode));
        if (NULL == pNewBtNode) {
            printf("内存分配失败,程序中止");
            exit(-1);
        }
        pNewBtNode -> data = data;
        pNewBtNode -> pLeftNode = NULL;
        pNewBtNode -> pRightNode = NULL;
        return pNewBtNode;
    }
    
    /**
     * 遍历树节点
     * @param iterator 
     */
    void traverseTree(PBtNode iterator) {
        if (NULL == iterator) return;
        printf("%d
    ", iterator -> data);
        if (NULL != iterator -> pLeftNode) traverseTree(iterator -> pLeftNode);
        if (NULL != iterator -> pRightNode) traverseTree(iterator -> pRightNode);
    }
    

      

  • 相关阅读:
    Vue 第六章 组件切换component、transition-group渲染
    Vue 第五章 钩子函数实现半场动画
    Vue 第四章 动画效果、animate第三方插件动画效果
    Vue 第三章 使用vue-resource列表案例、全局根域名配置
    hive介绍
    Hive性能优化--map数和reduce数
    Storm实现实时大数据分析
    hive架构原理简析-mapreduce部分
    hive入门学习线路指导
    HBase基本概念
  • 原文地址:https://www.cnblogs.com/mindzone/p/14624711.html
Copyright © 2011-2022 走看看