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 };

  • 相关阅读:
    了解NoSQL的必读资料
    SQLServer 事务、锁、阻塞
    蔡康永的说话之道
    SQL Server System Functions
    dotNet 框架程序设计 读书笔记
    SQLServer 2005 Inside Query
    学习心得LINQ to XML
    Web Service 实例
    用JAXRPC开发Web服务: Servlet作为Web服务端点
    JAVA学习推荐
  • 原文地址:https://www.cnblogs.com/A-FM/p/5141664.html
Copyright © 2011-2022 走看看