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

苏州手机网站建设报价wordpress 搜索 404

苏州手机网站建设报价,wordpress 搜索 404,做网站的是干嘛的,应用分析网站一.什么是树: 树形结构是一层次的嵌套结构。一个树形结构的外层和内层有相似的结构,所以这种结构多可以递归的表示。经典数据结构中的各种树状图是一种典型的树形结构:一棵树可以简单的表示为根,左子树,右子树。左子树…

一.什么是树:

树形结构是一层次的嵌套结构。一个树形结构的外层和内层有相似的结构,所以这种结构多可以递归的表示。经典数据结构中的各种树状图是一种典型的树形结构:一棵树可以简单的表示为根,左子树,右子树。左子树和右子树又有自己的子树。

 树的一些属性:

1、结点(Node):表示树中的数据元素,由数据项和数据元素之间的关系组成。在图中,共有10个结点。

2、结点的度(Degree of Node):结点所拥有的子树的个数,在图中,结点A的度为3。

3、树的度(Degree of Tree):树中各结点度的最大值。在图5.1中,树的度为3。

4、叶子结点(Leaf Node):度为0的结点,也叫终端结点。在图5.1中,结点E、F、G、H、I、J都是叶子结点。

5、分支结点(Branch Node):度不为0的结点,也叫非终端结点或内部结点。在图5.1中,结点A、B、C、D是分支结点。

6、孩子(Child):结点子树的根。在图中,结点B、C、D是结点A的孩子。

7、双亲(Parent):结点的上层结点叫该结点的双亲。在图中,结点B、C、D的双亲是结点A。

8、祖先(Ancestor):从根到该结点所经分支上的所有结点。在图中,结点E的祖先是A和B。

9、子孙(Descendant):以某结点为根的子树中的任一结点。在图中,除A之外的所有结点都是A的子孙。

10、兄弟(Brother):同一双亲的孩子。在图5.1中,结点B、C、D互为兄弟。

11、结点的层次(Level of Node):从根结点到树中某结点所经路径上的分支数称为该结点的层次。根结点的层次规定为1,其余结点的层次等于其双亲结点的层次加1。 [1]

12、堂兄弟(Sibling):同一层的双亲不同的结点。在图中,G和H互为堂兄弟。

13、树的深度(Depth of Tree):树中结点的最大层次数。在图5.1中,树的深度为3。 [1]

14、无序树(Unordered Tree):树中任意一个结点的各孩子结点之间的次序构成无关紧要的树。通常树指无序树。 [1]

15、有序树(Ordered Tree):树中任意一个结点的各孩子结点有严格排列次序的树。二叉树是有序树,因为二叉树中每个孩子结点都确切定义为是该结点的左孩子结点还是右孩子结点。 [1]

16、森林(Forest):m(m≥0)棵树的集合。自然界中的树和森林的概念差别很大,但在数据结构中树和森林的概念差别很小。从定义可知,一棵树由根结点和m个子树构成,若把树的根结点删除,则树变成了包含m棵树的森林。当然,根据定义,一棵树也可以称为森林。

一些特殊的树:

树中最特殊最经典的就是二叉树,二叉树顾名思义就是只有两个分叉的树,也就是度为二的树。

二叉树中又有俩个最为经典的树分别为完全二叉树和满二叉树。

一棵深度为k且有个结点的二叉树称为满二叉树。

如果对满二叉树的结点进行编号, 约定编号从根结点起, 自上而下, 自左而右。则深度为k的, 有n个结点的二叉树, 当且仅当其每一个结点都与深度为k的满二叉树中编号从1至n的结点一一对应时, 称之为完全二叉树。

二.用c语言实现一颗树:

要实现一颗树我们首先要先定义一个树的结构体

然后要确定我们树的基本功能

 

接着就是写完这些函数

 

#include"BinaryTree.h"BTNode* BinaryTreeCreate(BTDataType* a, int* pi)
{if (a[*pi] == '#'){(*pi)++;return NULL;}BTNode* root = (BTNode*)malloc(sizeof(BTNode));root->data = a[(*pi)++];root->left = BinaryTreeCreate(a, pi);root->right = BinaryTreeCreate(a, pi);return root;
}void BinaryTreeDestory(BTNode* root)
{assert(root);if (root == NULL)return;BinaryTreeDestory(root->right);BinaryTreeDestory(root->left);free(root);root = NULL;
}int BinaryTreeSize(BTNode* root)
{if (root == NULL)return 0;return BinaryTreeSize(root->left) + BinaryTreeSize(root->right) + 1;
}int BinaryTreeLeafSize(BTNode* root)
{if (root == NULL)return 0;if (root->left == NULL && root->right == NULL)return 1;return BinaryTreeLeafSize(root->left) + BinaryTreeLeafSize(root->right);
}int BinaryTreeLevelKSize(BTNode* root, int k)
{if (root == NULL)return 0;if (k == 1)return 1;k--;return BinaryTreeLevelKSize(root->left,k) + BinaryTreeLevelKSize(root->right,k);
}BTNode* BinaryTreeFind(BTNode* root, BTDataType x)
{if (root == NULL)return NULL;if (root->data == x)return root;BTNode* leftfind = BinaryTreeFind(root->left, x);if (leftfind != NULL)return leftfind;BTNode* rightfind = BinaryTreeFind(root->right, x);if (rightfind != NULL)return rightfind;return NULL;
}void BinaryTreePrevOrder(BTNode* root)
{if (root){printf("%c", root->data);BinaryTreePrevOrder(root->left);BinaryTreePrevOrder(root->right);}
}void BinaryTreeInOrder(BTNode* root)
{if (root){BinaryTreeInOrder(root->left);printf("%c", root->data);BinaryTreeInOrder(root->right); }
}void BinaryTreePostOrder(BTNode* root)
{if (root){BinaryTreePostOrder(root->left);BinaryTreePostOrder(root->right);printf("%c", root->data);}
}

http://www.yayakq.cn/news/355577/

相关文章:

  • 网站怎么做会让神马搜索到开发一个个人网站
  • 建设网站的有限公司有哪些
  • 企业设计网站公司排名网站首页轮播图怎么换
  • 重庆 网站 备案 查询软件开发服务合同
  • 网络营销网站有哪些网站子目录
  • 新建网站功能模块网站建设的目标和需求分析
  • 做的的网站怎样上传葫芦岛做网站的公司
  • 历下网站建设个人申请网址什么条件
  • 万网续费登录网站计算机前端和后端
  • 网站排名点击工具有专业做网站优化的吗
  • 做家教网站代理360网站地图怎么做
  • 学生网站建设首页湖州市建设中心网站
  • 茂名seo站内优化巨量数据分析入口
  • 孝感建设网站免费网站模板怎么做网站
  • 站长工具综合查询官网校园网站建设成本
  • 做网站有什么注意事项西安知名网站建设
  • 大图网 网站网站建设 后端前端
  • 建设农产品网站总结ppt模板上市公司网站建设分析
  • 免费网站设计什么价格免费微网站
  • 衡阳网站seo恺英网络公司现状
  • 阳江 网站开发申请注册网址
  • 检测网站开发语言网站建设服务商有哪些
  • 网站地址查询ip怎么更换网站logo
  • IC 网站建设制作网站品牌公司简介
  • 做效果图常用的网站有哪些今天战争最新消息新闻
  • 凡科建站怎么保存网站北京优化互联网公司
  • 网站建设+廊坊建设部人事考试网站官网
  • 网站备案 怎么建站网站seo怎样做
  • 有的网站没设关键词全友全屋定制官网
  • 网站手机端优化松江建网站