<?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/214592/feed" rel="self" type="application/rss+xml" />
	<link>https://www.aitaocui.cn</link>
	<description>翡翠玉石爱好者聚集地</description>
	<lastBuildDate>Thu, 24 Nov 2022 22:53:37 +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/326178.html</link>
					<comments>https://www.aitaocui.cn/article/326178.html#respond</comments>
		
		<dc:creator><![CDATA[然后怎样]]></dc:creator>
		<pubDate>Thu, 24 Nov 2022 22:53:37 +0000</pubDate>
				<category><![CDATA[百科]]></category>
		<category><![CDATA[二叉排序树]]></category>
		<guid isPermaLink="false">https://www.aitaocui.cn/?p=326178</guid>

					<description><![CDATA[二叉排序树（Binary Sort Tree），又称二叉查找树（Binary Search Tree），亦称二叉搜索树。是数据结构中的一类。在一般情况下，查询效率比链表结构要高。 ...]]></description>
										<content:encoded><![CDATA[</p>
<article>
<p>二叉排序树（Binary Sort Tree），又称二叉查找树（Binary Search Tree），亦称二叉搜索树。是数据结构中的一类。在一般情况下，查询效率比链表结构要高。</p>
</article>
<p><img decoding="async" src="https://www.aitaocui.cn/wp-content/uploads/2022/08/20220828_630b44f61b2cb.png" /></p>
<article>
<h1>定义</h1>
<p>二叉排序树或者是一棵空树，或者是具有下列性质的二叉树：</p>
<p>（1）若左子树不空，则左子树上所有结点的值均小于它的根结点的值；</p>
<p>（2）若右子树不空，则右子树上所有结点的值均大于它的根结点的值；</p>
<p>（3）左、右子树也分别为二叉排序树；</p>
<p>（4）没有键值相等的节点。</p>
<h1>查找</h1>
<div></div>
<p>步骤：</p>
<p>若根结点的关键字值等于查找的关键字，成功。</p>
<p>否则，若小于根结点的关键字值，递归查左子树。</p>
<p>若大于根结点的关键字值，递归查右子树。</p>
<p>若子树为空，查找不成功。</p>
<p>平均情况分析（在成功查找两种的情况下）：</p>
<p>在一般情况下，设P（n，i）为它的左子树的结点个数为i时的平均查找长度。如图的结点个数为n=6且i=3;则P（n,i）=P（6,3）=[1+(P(3)+1)*3+(P(2)+1)*2]/6=[1+(5/3+1)*3+(3/2+1)*2]/6</p>
<p>注意：这里P(3)、P(2)是具有3个结点、2个结点的二叉分类树的平均查找长度。在一般情况，P（i）为具有i个结点二叉分类树的平均查找长度。</p>
<p>P(3)=（1+2+2）/3=5/3</p>
<p>P(2)=（1+2）/2=3/2∴P（n,i）=[1+(P(i)+1)*i+(P(n-i-1)+1)*(n-i-1)]/n</p>
<p>∴P（n）=</p>
<p>P（n,i）/n&lt;=2(1+I/n)lnn</p>
<p>因为2(1+I/n)lnn≈1.38logn故P(n)=O(logn)</p>
<h1>步骤</h1>
<p>若根结点的关键字值等于查找的关键字，成功。</p>
<p>否则，若小于根结点的关键字值，递归查左子树。</p>
<p>若大于根结点的关键字值，递归查右子树。</p>
<p>若子树为空，查找不成功。</p>
<p>插入算法：</p>
<p>首先执行查找算法，找出被插结点的父亲结点。</p>
<p>判断被插结点是其父亲结点的左、右儿子。将被插结点作为叶子结点插入。</p>
<p>若二叉树为空。则首先单独生成根结点。</p>
<p>注意：新插入的结点总是叶子结点。</p>
<p>voidInsertBST(t，key)</p>
<p>//在二叉排序树中插入查找关键字key</p>
<p>{</p>
<p>if(t==NULL){</p>
<p>t=newBiTree;</p>
<p>t-&gt;lchild=t-&gt;rchild=NULL;</p>
<p>t-&gt;data=key;</p>
<p>return;}</p>
<p>if(keydata)InsertBST(t-&gt;lchild,key);</p>
<p>elseInsertBST(t-&gt;rchild,key);</p>
<p>}</p>
<p>voidCreateBiTree(tree,d【】,n）</p>
<p>//n个数据在数组d中，tree为二叉排序树根</p>
<p>{tree=NULL;</p>
<p>for(i=0;iInsertBST(tree,d);}</p>
<h1>删除结点</h1>
<p>在二叉排序树删去一个结点，分三种情况讨论：</p>
<p>若*p结点为叶子结点，即PL(左子树)和PR(右子树)均为空树。由于删去叶子结点不破坏整棵树的结构，则可以直接删除此子结点。</p>
<p>若*p结点只有左子树PL或右子树PR，此时只要令PL或PR直接成为其双亲结点*f的左子树（当*p是左子树）或右子树（当*p是右子树）即可，作此修改也不破坏二叉排序树的特性。</p>
<p>若*p结点的左子树和右子树均不空。在删去*p之后，为保持其它元素之间的相对位置不变，可按中序遍历保持有序进行调整，可以有两种做法：</p>
<p>C代码</p>
<h1>性能分析</h1>
<p>每个结点的C(i)为该结点的层次数。最坏情况下，当先后插入的关键字有序时，构成的二叉排序树蜕变为单支树，树的深度为其平均查找长度(n+1)/2(和顺序查找相同），最好的情况是二叉排序树的形态和折半查找的判定树相同，其平均查找长度和log2(n)成正比。</p>
<h1>优化</h1>
<p>SizeBalancedTree(SBT)</p>
<p>AVL树</p>
<p>红黑树</p>
<p>Treap(Tree+Heap)</p>
<p>这些均可以使查找树的高度为O(log(n))</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/326178.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
