当前位置: 首页 > news >正文

购物网站产品做促销能赚钱吗做网站打广告犯法吗

购物网站产品做促销能赚钱吗,做网站打广告犯法吗,南京网络推广公司排行榜,怎么做科技小制作视频网站# 二叉搜索树 Binary Search Tree1. 非空左子树所有键值小于根节点的键值2. 非空右子树所有键值大于根节点的键值3. 左右子树都是二叉搜索树操作的函数: 1. Position Find( ElementType X, BinTree BST ):从二叉搜索树BST 中查找元素X,返回其所在结点的地址;2. Pos…

# 二叉搜索树 Binary Search Tree

1. 非空左子树所有键值小于根节点的键值

2. 非空右子树所有键值大于根节点的键值

3. 左右子树都是二叉搜索树

操作的函数:  

1. Position Find( ElementType X, BinTree BST ):从二叉搜索树BST 中查找元素X,返回其所在结点的地址;

2. Position FindMin( BinTree BST ):从二叉搜索树BST中查找并返回 最小元素所在结点的地址;

3. Position FindMax( BinTree BST ) :从二叉搜索树BST中查找并返回 最大元素所在结点的地址。

4. BinTree Insert( ElementType X, BinTree BST ) 插入

5. BinTree Delete( ElementType X, BinTree BST ) 删除

## 查找  

递归实现  

```c

Position Find( ElementType X, BinTree BST ) {

    if( !BST ) return NULL; /*查找失败*/

    if( X > BST->Data )

        return Find( X, BST->Right ); /*在右子树中继续查找*/

    Else if( X < BST->Data )

        return Find( X, BST->Left ); /*在左子树中继续查找*/

    else

        /* X == BST->Data */

        return BST; /*查找成功,返回结点的找到结点的地址*/

}

```

迭代实现  

```c

Position IterFind( ElementType X, BinTree BST ) {

    while( BST )

    {

        if( X > BST->Data )

            BST = BST->Right; /*向右子树中移动,继续查找*/

        else if( X < BST->Data )

            BST = BST->Left; /*向左子树中移动,继续查找*/

        else /* X == BST->Data */

            return BST; /*查找成功,返回结点的找到结点的地址*/

    }

        return NULL; /*查找失败*/

}

```

## 返回最大值/最小值

最大元素一定在最右分支的端点上

```c

Position FindMax( BinTree BST )

{

    if(BST ) // 结点不空

    {

        while( BST->Right ) // 右儿子不空

            BST = BST->Right; // 则往右

    }

    return BST;

}

```

最小元素在最左段上  

递归法:  

```c

 Position FindMin( BinTree BST )

{

    if( !BST ) return NULL;/*空的二叉搜索树,返回NULL*/

    else if( !BST->Left )

        return BST; /*找到最左叶结点并返回*/

    else

        return FindMin( BST->Left ); /*沿左分支继续查找*/

```

## 插入  

```c

BinTree Insert( ElementType X, BinTree BST ) {

    if( !BST ) /*若原树为空,生成并返回一个结点的二叉搜索树*/

    {

        BST = malloc(sizeof(struct TreeNode));

        BST->Data = X;            

        BST->Left = BST->Right = NULL;

    }

    else /*开始找要插入元素的位置*/

    {

        if( X < BST->Data )

            BST->Left = Insert( X, BST->Left); /*递归插入左子树*/

        else if( X > BST->Data )

            BST->Right = Insert( X, BST->Right); /*递归插入右子树*/

    /* else X已经存在,什么都不做 */

    }

    return BST;

}

```

## 删除  

1. 删除的是叶结点

2. 删除的只有一个孩子的结点

3. 要删除的结点右左右两棵子树,则:

    * 右子树最小元素替代

    * 左子树最大元素替代

实现  

```c

BinTree Delete( BinTree BST, ElementType X )

{

    Position Tmp;

    if( !BST )

        printf("要删除的元素未找到");

    else {

        if( X < BST->Data )

            BST->Left = Delete( BST->Left, X );   /* 从左子树递归删除 */

        else if( X > BST->Data )

            BST->Right = Delete( BST->Right, X ); /* 从右子树递归删除 */

        else { /* BST就是要删除的结点 */

            /* 如果被删除结点有左右两个子结点 */

            if( BST->Left && BST->Right ) {

                /* 从右子树中找最小的元素填充删除结点 */

                Tmp = FindMin( BST->Right );

                BST->Data = Tmp->Data;

                /* 从右子树中删除最小元素 */

                BST->Right = Delete( BST->Right, BST->Data );

            }

            else { /* 被删除结点有一个或无子结点 */

                Tmp = BST;

                if( !BST->Left )       /* 只有右孩子或无子结点 */

                    BST = BST->Right;

                else                   /* 只有左孩子 */

                    BST = BST->Left;

                free( Tmp );

            }

        }

    }

    return BST;

}

```

# 平衡二叉树  Balanced Binary Tree

平均查找长度ASL  

平衡因子(Balance Factor,简称BF): BF(T) = hL-hR,  

|BF(T)| <= 1  

平衡二叉树的高度  

n_h: 高度为h的平衡二叉树最少结点数  

n_h = n_h-1 + n_h-2 + 1  

    = F_h+2 - 1  

给定结点数为 n的AVL树的 最大高度为O(log2n)!

## 调整  

平衡二叉树是搜索树  

右单旋  

麻烦结点在发现者(被破坏者)的右子树的右子树上,因而RR插入,需要RR旋转  

左单旋  

麻烦结点在发现者(被破坏者)的左子树的左子树上,因而LL旋转  

左右旋转  

麻烦结点在发现者(被破坏者)的左子树的右子树上, LR旋转

习题: 是否同一颗二叉搜索树  

1. 根据两个序列分别建树,再判别树是否一样

2. 不建树的判别方法  

3. 建一棵树,再判别其他序列是否与该树一致

http://www.dtcms.com/a/481468.html

相关文章:

  • 阳江市做网站的公司有没学做早餐的网站
  • 做一个英文网站百度竞价官网
  • 台州建设监理协会网站做资源网站
  • 浙江省建设执业资格中心网站深圳网站建设找哪家公司
  • wordpress菜单底部导航三明seo
  • 火星建站和八亿建站在wordpress中图标
  • 东莞网站建设 信科网络境外公司注册
  • 深圳微商城网站设计费用服务网站策划书
  • 百度网站怎么申请注册北京搭建公司
  • 建立互联网公司网站百度网站优化哪家好
  • seo网站排名优化公司网站开发 平台
  • 昌邑市住房和建设局网站江门做网站公司开网络公司
  • 上海松江做网站公司成都小程序开发方案
  • 网站开发非常之旅工商银行手机银行app下载
  • 酒店建设网站的意义旅游机票网站建设
  • php学校网站模板怎么做公司官方网站
  • 网站建设需要步骤如何判断一个网站的关键词是否难做
  • 张家港网站制作公司通过百度指数不能判断出
  • 学生网站建设首页天津网站建设软件开发招聘
  • 有做兼职赚钱的网站吗下载企业网站
  • 网站文章伪原创怎么做自己建购物网站
  • 网站搭建技术有哪些建一个企业网站要花多少钱
  • 网站建设一年能收入多少钱深圳微商城网站制作价格
  • 做影视网站引流icp备案 网站名称
  • php网站连接数据库教程济南公司制作网站
  • 免费成品网站模板阿里云中英文网站建设
  • 重庆购物网站建设莱芜网页
  • 云南省住房城乡建设厅网站射阳网站设计
  • 龙海网站开发p2p网站建设多少钱
  • 免费建站网站一区黄在线国产做网站内容来源