第三讲-树(上)

2017-08-11  本文已影响0人  沧海梦帆

什么是树

一种层次结构,显示中有许多这样的结构,例如:企业部门,图书管理,国家机构,文件系统等。
那为什么选择树呢————一个基本的原因是树形结构有着高效率的查找(搜索/检索)操作,并且树的插入和删除操作也比较快

定义和一些性质:

树的一些术语:

imageimage
imageimage

查找(searching)

定义:给定关键字,在集合中找出与关键字相同(相关)的记录。

树的表示

由儿子兄弟表示法,可以将任意一种树转化为二叉树。

二叉树

存储结构

二叉树几个重要的性质

重要操作:遍历

void InorderTraversal(BinTree bt)
{
    BinTree t = bt;
    Stact s = stack();
    while(t || !s.isEmpty())
    {
        //一直访问左子树
        while(t)
        {
            s.push(t);
            //对于先序将访问操作放在此处即可
            t = t->left;
        }
        //出栈
        if(!s.isEmpty())
        {
            t = s.pop();
            //访问
            cout<<t;
            //指向右子树
            t = t->right;
        }
    }
    
}
后序遍历和前序中序写法不太相同

不管遍历顺序怎么样,走过的路径都是一样的,只不过是访问的时机不同,每个节点都会走过三次。

两种遍历且必须有中序遍历,则可以唯一确定二叉树


上一篇 下一篇

猜你喜欢

热点阅读