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

四川高速公路建设集团网站seo快速排名优化公司

四川高速公路建设集团网站,seo快速排名优化公司,wordpress源代码,大连零基础网站建设教学哪里有树 节点(Node:) 树由一系列的节点组成,每个节点可以包含数据和指向其他节点的链接。 节点通常包含一个数据元素和若干指向其他节点的指针 根节点(Root): 树的顶部节点称为根节点&#xff0c…

节点(Node

树由一系列的节点组成,每个节点可以包含数据和指向其他节点的链接。

节点通常包含一个数据元素和若干指向其他节点的指针

根节点(Root)

树的顶部节点称为根节点,它是树中没有父节点的唯一节点

子节点(Child)

一个节点的子节点是指由该节点直接指向的节点

叶节点(Leaf)

没有子节点的节点称为叶节点或终端节点

深度(Depth)

节点的深度是从根节点到该节点的路径上的边数。

(广)度:

最大的节点的度

二叉树

每个节点最多有两个子节点的树,通常称为左子节点和右子节点

满二叉树:

在不增加层数的情况下,不能再增加节点了,即为满二叉树

第K层节点个数:

2^(k-1)

K层满二叉树:

总结点数:2^K - 1

完全二叉树:

在满二叉树的基础下,删除节点,只能从右至左,从下到上,删若干个

添加节点,只能从左至右,从上到下,添加若干个。

满二叉树一定是完全二叉树

完全二叉树不一定是满二叉树

二叉树的遍历

前序遍历:先遍历根,再遍历左子树然后再遍历右子树

中序遍历:先遍历左子树,再遍历根,再遍历右子树

后序遍历:先遍历左子树,再遍历右子树,最后遍历根

层序遍历:从上到下,从左至右,逐层遍历

前三种称为深度优先,层序遍历称为广度优先

已知一种排序,不能还原出唯一的二叉树

已知前序+中序 --->唯一的二叉树

已知后序+中序 --->唯一的二叉树

但是知道前序和后序不能还原

二叉树相关练习

1.创建二叉树

TNode_t *create_bin_tree()
{TDataType data = tree[idx++];if(data == '#'){return NULL;}TNode_t *pnode = malloc(sizeof(TNode_t));if(NULL == pnode){perror("malloc fail");return NULL;}pnode->data = data;pnode->pl = create_bin_tree();pnode->pr = create_bin_tree();return pnode;
}

2.前序遍历

void pre_order(TNode_t *proot)
{if(NULL == proot){return;}printf("%c",proot->data);pre_order(proot->pl);pre_order(proot->pr);
}

3.中序遍历

void mid_order(TNode_t *proot)
{if(NULL == proot){return;}mid_order(proot->pl);printf("%c",proot->data);mid_order(proot->pr);
}

4.后序遍历

void last_order(TNode_t *proot)
{if(NULL == proot){return;}last_order(proot->pl);last_order(proot->pr);printf("%c",proot->data);
}

5.层序遍历

void layer_order(TNode_t *pnode)
{Queue_t *qnode = create_queue();if(NULL == qnode){return;}push_queue(qnode,(QDataType)pnode);while(!is_empty_queue(qnode)){QDataType outdata;if(pop_queue(qnode,&outdata) == 0){TNode_t *node = (TNode_t *)outdata;printf("%c",outdata->data);if(node->pl){push_queue(qnode,(QDataType)node->pl);}if(node->pr){push_queue(qnode,(QDataType)node->pr);}}}destory_queue(qnode);
}

6.获取二叉树节点数

int get_tree_node(TNode_t *proot)
{if(NULL == proot){return 0;}num++;get_tree_node(proot->pl);get_tree_node(proot->pr);return num;
}

7.获取二叉树层数

int get_tree_fl(TNode_t *proot)
{if(NULL == proot){return 0;}int cntl = get_tree_fl(proot->pl);int cntr = get_tree_fl(proot->pr);return cntl > cntr ? cntl + 1 : cntr + 1;
}

//二叉树的相关函数,例如创建二叉树,前序,后序,中序等都是基于一个函数递归调用的思想,原因是,树本身就是一个递归的结构,由根节点和子节点构成,所以写写树相关的代码时离不了相关函数的递归调用。不过值得一提的是,函数的递归调用的执行效率并不高。

http://www.ds6.com.cn/news/114022.html

相关文章:

  • wordpress位置济南网站优化培训
  • 大连有几家做网站的公司百度人气榜排名
  • 做网站毕业论文镇江seo公司
  • 创建.com网站上海网络推广外包公司
  • 长春专业做网站seo营销软件
  • 北京哪里有网站建设设计使用网站模板快速建站
  • flash网站整站下载北京seoqq群
  • 做测试题的网站网络服务器配置与管理
  • 软件著作权申请流程及费用seo外链怎么做
  • 化妆品营销型网站案例东莞seo整站优化火速
  • 静态网页怎么做网站品牌推广方式都有哪些
  • 鄞州区优秀营销型网站建设首选营业推广策划方案
  • 界面设计案例图片企业关键词排名优化哪家好
  • 具有价值的广州做网站站长工具中文
  • 黄冈网站建设的方案石家庄市人民政府官网
  • 做网站开发的流程手游推广渠道平台
  • 蓝杉互动网站建设网络营销有哪些特点
  • 郑州高档网站建设武汉seo优化
  • 如何做网站淘宝客常用的网络推广手段有哪些
  • 临安市规划建设局网站网站设计服务企业
  • 网站建设是设百度咨询电话 人工客服
  • 网站建设课程设计百度文库网页宣传
  • 现在的网站推广是怎么做的seo快速建站
  • 蚌埠做网站公司在线客服
  • 传统网站和手机网站的区别免费申请网站com域名
  • 帝国网站做地域标签推广链接点击器app
  • 交互网站 百度315影视行业
  • 做模拟人生类的游戏下载网站福州关键词优化平台
  • 手机网站设计作品欣赏娃哈哈软文推广
  • 酒店网站建设方案书奖券世界推广网站