zoukankan      html  css  js  c++  java
  • -----下面是二叉树的定义-----储存---

    说了那么多,下面该上正货了。

    二叉树的定义:一个有穷的节点的集合

            这个集合可以为空

          若不为空,则它是有根节点和称为其左子树Tl和右子树的两个不相交的二叉树组成。

    特殊的二叉树这个就不是完全二叉树

    二叉树对应的操作集。

    BT∈BinTree,Item∈ElementType,重要的操作有。

    void PerOredTraversal(BinTree  BT):先序---根,左子树,右子树;

    void InrOredTraversal(BinTree  BT) :中序---左子树,根,右子树;

    void PostOredTraversal(BinTree  BT):后续---左子树,右子树,根;

    void LevelOredTraversal(BinTree  BT):层次遍历,从上到下,从左到右。

    二叉树的储存

    1:顺序储存(设计竞赛的话,不怕浪费那一点容量尽量使用简单移动的例如顺序储存,当不能用顺序储存的时候再开始,去仔细的研究链表。)    这个是  完全二叉树。。。

     

    普通的二叉树储存也可以这样储存

    他们父子关系的寻找为   n/2  是  n的父亲    n/2  和n/2+1分别是  n的左右儿子。

    虽然以  空间为代价,但是在程序设计竞赛的时候,空间应该是没问题的。多关心时间复杂度就可以了。

    1 /*下面是 二叉树的   链表储存方式,,一带而过    深究的话性价比不大*/
    2 typedef struct Treenode *BinTree;
    3 typedef Bintree position;
    4 struct Treenode
    5 {
    6     Element Date;
    7     BinTree left;
    8     BinTree Right;
    9 };

  • 相关阅读:
    Cordova/Cordova.h file not found的解决方法
    使用MethodSwizzle导致按home app进入后台或者app间切换发生crash的解决方法
    基于iOS上MDM技术相关资料整理及汇总
    iOS集成微信支付
    iOS集成支付宝支付
    最新apple邓白氏码申请地址
    游戏的定价
    许久未更,随便侃侃
    记一个有趣的梦
    由《掟上今日子的备忘录》引发的联想
  • 原文地址:https://www.cnblogs.com/A-FM/p/5141664.html
Copyright © 2011-2022 走看看