数据结构:树

出现原因:对于大量的输入数据,链表的线性访问时间太慢

                   而树的大部分操作的运行时间平均为O(logN)

 

定义:n个结点的有限集合(n>0)

递归定义:1.根节点

                    2.除根节点的m个不相交有限集也是树,根的子树

 

树的实现:链表存储

                   typedef struct _node{

                   int value;

                   struct _node *brother;

                   struct  _node *son;

                   }treenode;

                    *具有N个结点的每棵二叉树都需N+1个NULL指针

 

二叉树

定义:一颗每结点不多于2个儿子的树

         typedef struct _node{

         int value;

         struct _node *left;

         struct _node *right; 

          }treenode;

      

二叉查找树

定义:树中每个结点x,它的左子树中的所有关键字值小于x,它的右子树中所有关键字值大于x

 

对象集:二叉查找树

操作集:void Makeempty(treenode *T);

                treenode *Find(teenode *T);

                 teenode *Findmin(treenode *T);

                treenode *Findmax(treenode *T);

                int Retrieve(treenode *T);

                treenode *Insert(treenode *T);

                treenode *Delete(treenode *T);

 

AVL树

带有自平衡条件的二叉查找树

*其操作是建立在二叉查找树的基础上

*其insert/delete需要旋转以达到自平衡的目的

旋转函数:

                treenode *Singlerotatewithleft(treenode *k2);

                treenode *Doublerotatewithleft(treenode *k3);

                treenode *Singlerotatewithright(treenode *k1);

                treenode *Doublerotatewithright(treenode *k1);

 

伸展树

 

B-树

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值