二叉排序樹怎么構(gòu)造 二叉排序樹和堆的區(qū)別?
二叉排序樹和堆的區(qū)別? 二叉排序樹是為了實(shí)現(xiàn)動(dòng)態(tài)查找而設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu),它是面向查找操作的,在二叉排序樹中查找一個(gè)結(jié)點(diǎn)的平均時(shí)間復(fù)雜度是O(log n); 堆是為了實(shí)現(xiàn)排序而設(shè)計(jì)的一種數(shù)據(jù)結(jié)構(gòu),它不
二叉排序樹和堆的區(qū)別?
二叉排序樹是為了實(shí)現(xiàn)動(dòng)態(tài)查找而設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu),它是面向查找操作的,在二叉排序樹中查找一個(gè)結(jié)點(diǎn)的平均時(shí)間復(fù)雜度是O(log n); 堆是為了實(shí)現(xiàn)排序而設(shè)計(jì)的一種數(shù)據(jù)結(jié)構(gòu),它不是面向查找操作的,因而在堆中查找一個(gè)結(jié)點(diǎn)需要進(jìn)行遍歷,其平均時(shí)間復(fù)雜度是O(n)。
二叉查找樹和二叉排序樹有什么區(qū)別?
二叉樹和二叉排序樹區(qū)別為:子樹結(jié)點(diǎn)不同、鍵值相等不同、子樹樹型不同。
一、子樹結(jié)點(diǎn)不同
1、二叉樹:二叉樹的左/右子樹上所有結(jié)點(diǎn)的值可以大于、等于和小于它的根結(jié)點(diǎn)的值。
2、二叉排序樹:二叉排序樹若左/右子樹不空,則左/右子樹上所有結(jié)點(diǎn)的值均小于它的根結(jié)點(diǎn)的值。
二、鍵值相等不同
1、二叉樹:二叉樹可以有鍵值相等的結(jié)點(diǎn)。
2、二叉排序樹:二叉排序樹沒有鍵值相等的結(jié)點(diǎn)。
三、子樹樹型不同
1、二叉樹:二叉樹的左、右子樹也分別為二叉樹。
2、二叉排序樹:二叉排序樹的左、右子樹也分別為二叉排序樹