<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>完全二叉树</title>
	<atom:link href="https://www.aitaocui.cn/tag/237581/feed" rel="self" type="application/rss+xml" />
	<link>https://www.aitaocui.cn</link>
	<description>翡翠玉石爱好者聚集地</description>
	<lastBuildDate>Sun, 27 Nov 2022 06:11:53 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.1</generator>

<image>
	<url>https://www.aitaocui.cn/wp-content/uploads/2022/11/taocui.png</url>
	<title>完全二叉树</title>
	<link>https://www.aitaocui.cn</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>完全二叉树(非线性数据结构的常见形式)</title>
		<link>https://www.aitaocui.cn/article/349431.html</link>
					<comments>https://www.aitaocui.cn/article/349431.html#respond</comments>
		
		<dc:creator><![CDATA[世界上不存在的歌]]></dc:creator>
		<pubDate>Sun, 27 Nov 2022 06:11:53 +0000</pubDate>
				<category><![CDATA[知识]]></category>
		<category><![CDATA[完全二叉树]]></category>
		<guid isPermaLink="false">https://www.aitaocui.cn/?p=349431</guid>

					<description><![CDATA[完全二叉树是重要的非线性数据结构二叉树的一种常见形式。 完全二叉树的定义、性质以及算法见正文，这里补充一点：完全二叉树是效率很高的数据结构，堆是一种完全二叉树或者近似完全二叉树，所...]]></description>
										<content:encoded><![CDATA[</p>
<article>
<p>完全二叉树是重要的非线性数据结构二叉树的一种常见形式。</p>
<p>完全二叉树的定义、性质以及算法见正文，这里补充一点：完全二叉树是效率很高的数据结构，堆是一种完全二叉树或者近似完全二叉树，所以效率极高，像十分常用的排序算法、Dijkstra算法、Prim算法等都要用堆才能优化，几乎每次都要考到的二叉排序树的效率也要借助平衡性来提高，而平衡性基于完全二叉树。</p>
</article>
<p><img decoding="async" src="https://www.aitaocui.cn/wp-content/uploads/2022/08/20220828_630bcbb0986b6.png" /></p>
<article>
<h1>判断</h1>
<p>完全二叉树：除最后一层外，每一层上的节点数均达到最大值；在最后一层上只缺少右边的若干结点。</p>
<h1>定义</h1>
<div></div>
<p>完全二叉树(Complete Binary Tree)</p>
<p>若设二叉树的深度为h，除第h层外，其它各层(1～h-1)的结点数都达到最大个数，第h层所有的结点都连续集中在最左边，这就是完全二叉树。</p>
<p>完全二叉树是由满二叉树而引出来的。对于深度为K的，有N个结点的二叉树，当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。</p>
<p>若一棵二叉树至多只有最下面的两层上的结点的度数可以小于2，并且最下层上的结点都集中在该层最左边的若干位置上，则此二叉树成为完全二叉树。</p>
<h1>特点</h1>
<p>叶子结点只可能在最大的两层上出现,对任意结点，若其右分支下的子孙最大层次为L，则其左分支下的子孙的最大层次必为L或L+1；</p>
<p>出于简便起见,完全二叉树通常采用数组而不是链表存储,其存储结构如下:</p>
<p>var tree:array[1..n]of longint;{n:integer;n&gt;=1}</p>
<p>对于tree有如下特点：</p>
<p>（1）若i为奇数且i&gt;1，那么tree的左兄弟为tree[i-1]；</p>
<p>（2）若i为偶数且i</p>
<p>（3）若i&gt;1，tree的双亲为tree[i div2]；</p>
<p>（4）若2*i&lt;=n，那么tree的左孩子为tree[2*i]；若2*i+1&lt;=n，那么tree的右孩子为tree[2*i+1]；</p>
<p>（5）若i&gt;n div 2,那么tree[i]为 叶子结点（对应于（3））</p>
<p>（6）若i&lt;(n-1)div2.那么tree[i]必有两个孩子（对应于（4））</p>
<p>（7）满二叉树一定是完全二叉树，完全二叉树不一定是满二叉树</p>
<p>完全二叉树第i层至多有2^（i-1）个 节点，共i层的完全二叉树最多有2^i-1个节点。</p>
<h1>算法</h1>
<p>完全二叉树叶子结点的算法</p>
<p>如果一棵具有n个结点的深度为k的二叉树，它的每一个结点都与深度为k的满二叉树中编号为1~n的结点一一对应，这棵二叉树称为完全二叉树。</p>
<p>可以根据公式进行推导，假设n0是度为0的结点总数（即叶子结点数），n1是度为1的结点总数，n2是度为2的结点总数，由二叉树的性质可知：n0=n2+1，则n=n0+n1+n2（其中n为完全二叉树的结点总数），由上述公式把n2消去得：n=2n0+n1-1，由于完全二叉树中度为1的结点数只有两种可能0或1，由此得到n0=（n+1）/2或n0=n/2。总结起来，就是n0=[n/2]，其中[]表示上取整。可根据完全二叉树的结点总数计算出叶子结点数。</p>
</article>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aitaocui.cn/article/349431.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
