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

做互联网交易网站的条件发稿

做互联网交易网站的条件,发稿,做自己域名的网站很贵吗,做外汇 虚拟网站本篇博客给大家带来的是用C语言来实现数据结构树和二叉树的实现! 🐟🐟文章专栏:数据结构 🚀🚀若有问题评论区下讨论,我会及时回答 ❤❤欢迎大家点赞、收藏、分享! 今日思想&#xff…

本篇博客给大家带来的是用C++语言来实现数据结构树和二叉树的实现!

🐟🐟文章专栏:数据结构

🚀🚀若有问题评论区下讨论,我会及时回答

❤❤欢迎大家点赞、收藏、分享!

今日思想:你现在的懒惰将来你会买单的!

 一、树

        大家都见过树,那么数据结构的树你们可以想象成叶子全被撸光了,叶子的枝干在下面,根在上面。

如图:

        在树中子树和子树不能有交集,什么是子树呢?上图是完整的树,子树是它的一个分枝,如下图:

这里有些专业术语需要大家知道(大家可以把树想象成家谱):

根结点:就是上图的A。

父结点/双亲结点:A是B和C的父结点,B是D和E的父结点,以此类推。

结点的度:一个结点有多少孩子度就有多少,例如:A的孩子(不包括它的孙子)有两个,度就是2。

树的度:在同一个父结点的情况下,孩子最多的,则孩子的多少就是树的度,例如:A的孩子有2个则树的度为2。

子结点/孩子结点:B是A的孩子则B就是子结点。

叶子结点/终端结点:没有孩子的就是叶子结点,如:D,E,F。

分支结点/非终端结点:有孩子的就是分支结点,如:A。

兄弟结点:同一个父结点的就是兄弟结点,如:B和C。

结点的层次:A为第一层,BC为第二层,以此类推。

树的高度/深度:就是树一共有多少层,如:上面的树一共有3层。

结点的祖先:A是所有结点的祖先,则A就是B、C、D等结点的祖先。

路径:从任意结点开始到目标结点的路程就是路径,如:A到E的路径:A->B->E。

森林:由一颗颗树组成的就是森林。

子孙:同一个父结点的结点,这结点就是父结点的子孙。

二、二叉树

        1、二叉树

        二叉树是树的一种,一棵树有许多分支,而二叉树只有两个分支,如图:

        二叉树的特点:二叉树每个结点的度不能大于2,二叉树的子树有左右之分,次序不能颠倒,所有二叉树是有序树。 

        2、满二叉树

        满二叉树顾名思义就是子孙满堂了,即:每个结点都有两个孩子。如图:

        这里也给大家看一下非满二叉树,如图:

        满二叉树的特点:假设有一棵二叉树的层数为K,并且结点的总数是2^K-1, 那么这棵树二叉树就是满二叉树。

        3、完全二叉树

        完全二叉树:除了最后一层可能子孙不全,其他层的结点子孙满堂,那么这棵二叉树就是完全二叉树。如图:

 这里得出一个结论:满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。

        4、二叉树性质

        根据满二叉树的特点可知:

        ①若规定根结点的层数为1,则一棵非空二叉树的第i层上最大有2^(i-1)结点。

        ②若规定根结点的层数为1,则深度为h的二叉树的最大结点数为2^h-1。

        ③若规定根结点的层数为1,具有n个结点的满二叉树的深度为h=log2^(n+2)。

        5、二叉树的存储结构

        二叉树一般使用两种结构来存储,一种为顺序结构,一种为链式结构。

        5.1、顺序结构

        顺序结构的存储是用数组来存储的,数组一般只适合来存储完全二叉树,因为不是完成二叉树会有空间的浪费。

        现实生活我们把堆(一种二叉树)使用顺序结构的的数组来存储,这里的堆不是操作系统虚拟进程地址空间中的堆是两回事,一个是数据结构,另一个是操作系统中管理内存的一块区域分段。

        5.2、链式结构

        我们用链表来表示一棵二叉树,我们创建右孩子(右边的指针的指向)和左孩子(左边指针的指向)还有自身的存储的数据,这样通过一个个链表来构建一颗二叉树。

         5.3、堆

        堆:一种把所有的数据按照完全二叉树的顺序存储方式存储,堆分为大堆和小堆,大堆是父结点大于孩子结点且根结点为所有结点的最大值,小堆是父结点小于孩子结点且根结点为所有结点的最小值。如图:

        堆的性质:堆中某个结点的值总是不大于或不小于父结点的值,堆总是一颗完全二叉树。 

         这里有些二叉树的性质:

        i 表示某个位置(序号)的结点。

        i 位置的父结点序号 = (i - 1) / 2;如果 i = 0,i为根结点没有父结点。

        i 位置的左孩子的序号 = 2i+1,如果 2 i + 1 >= n则没有左孩子。

        i 位置的右孩子的序号 = 2i+2,如果 2 i + 2 >= n则没有右孩子。

        5.4、堆的实现

        堆的底层为数组,那么堆的结构为:

//Heap.h
#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>//堆的结构
typedef int HPDataType;
typedef struct Heap
{HPDataType* arr;int size;//有效数据个数int capacity;//空间大小
}HP;

       由于时间关系实现二叉树的方法在下篇。

完!!

http://www.dtcms.com/wzjs/94159.html

相关文章:

  • 保山公司网站建设营销活动推广策划
  • 电子商务网站建设目标分析企业网络宣传推广方案
  • 成都古怪科技网站建设公司网站快速排名服务
  • 怎么给网站做关键词排名电商运营培训课程有哪些
  • 上传了网站标志怎么弄营销推广外包
  • 网站建设与设计方案短视频搜索优化
  • dedecms 图片网站模板兰蔻搜索引擎营销案例
  • 功能介绍的网站系统优化的方法
  • 公司网站忘了怎么做怎么创建自己的网站
  • 网页制作基础教程dw汕头seo优化项目
  • 武汉做网站的公司排名百度搜索热度查询
  • 30岁学网站开发成人计算机培训机构哪个最好
  • 做第三方网站注意什么网站怎么开发
  • 网易工作做网站工资奖金高吗seo服务包括哪些
  • j2ee网站开发开题报告开发定制软件公司
  • 上海网站开发技术最好公司电话爱站网ip反查域名
  • 青海做网站好的公司网推拉新app推广平台
  • 联系客户做网站确认已有81人感染
  • 泰国网站域名网上教育培训机构哪家好
  • 君临天下游戏网站开发者杭州专业seo
  • 做网站公司松江广告软文范例200字
  • 集团网站设计思路站长工具的使用seo综合查询排名
  • 企业网站建设好的案例网络热词2022
  • 网站建设优秀网站建微信营销平台有哪些
  • 独立网站建设深圳网络提速优化服务包
  • 加强党建网站建设的重要性网站建设找哪家公司好
  • 商务网站规划与建设小红书信息流广告投放
  • 织梦微电影分享网站织梦整站源码杭州市优化服务
  • iis上做的网站外网怎么访问不了seo的流程是怎么样的
  • 怎么做可以把网站图片保存下来吗搜索引擎优化培训中心