版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Chapter8searchtrees17
1722
19
6
11(a)
(b)6
9
615
3(c)
(d)Figure8-3invalidbinarysearchtreesAssume:TofindT,ComparingTwithroot,T<root
goleftT>root
go
rightAlgorithm
searchBST(val
root
<pointer>,val
argument<key>)Search
a
binary
search
tree
for
a
given
value
Preroot
is
the
root
to
a
binary
tree
orsubtree
argument
is
the
key
value
requested
Return
thenode
addressif
thevalue
isfoundNullif
thenode
isnot
in
the
tree1
if(root
is
null)1
return
null2end
if3
if
(argument<root->key)1return
searchBST(root->left,argument)4
else
if(argument>root->key)1
return
searchBST
(root->right,argument)
5
else1
return
root6
end
ifOperationsonbinarysearchtree
traversalsAlgorithms
areidentical
to
theones
in
chapter
7binary
search
treesearchalgorithmsFind
smallest
nodeFind
largest
nodeFind
requested
node●Insert
nodeSteps:1.Follow
the
branches
to
an
empty
subtree2.Insert
the
new
nodeAll
inserts
take
place
ata
leaf
or
aleaflike
node
thathas
onlyone
null
branchAfterinserting23238
44
1②
20358238)
44
12
2①
35Afterinserting
192318
4
1②
20
35Afterinserting.3819Note:node
withequalvaluesarefoundinthe
right
subtree52525②1
if(root
is
null)1
root
=new2
1else
pwalk
=root2
io
p(
k
a
ull)2
1
i
pl
key)3
else4end
P*alk=pwalk>isht3
end
loopLocationfornewnodefound4
if1
(n
k->el
f
pa
>key)5
el1s
->right
=new
6end
if3
end
if4returnwt-ent<nt>e-pareweftk->llk-wpwaey<lkw-aepwf(nlknwtpotlnaparepw1oAlgorithminsertBST(ref
root<pointer>,val
new
<pointer>)Insertnodecontainingnewdata
into
BSTusing
iterationPrerootisaddressof
firstnode
in
aBSTnewisaddressof
node
containingdatatobeinsertedPostnewnodeinsertedintothe
tree23Iterativeinsert(algorithm)end
insertBSTAlgorithm
8-4
iterativebinary
search
tree
insertwalk20parent
nul812new
一
19Finalpositionwhen
pwalk
nulRecursive
insertnode(algorithm)Algorithm
addBST(refroot
<pointer>,val
new
<pointer>)InsertnodecontainingnewdataintoBSTusingrecursionPrerootisaddressof
currentnodein
a
BSTnewisaddressof
nodecontainingdatatobe
insertedPostnewnodeinsertedintothetree1
if(root
is
null)i
root=new2
elselocate
null
subtreeforinsertion1
if(new->key<root->key)1
addBST(root->left,new)2
else1
addBST(root->right,new)3
end
if3end
if4returnend
insertBSTalgorithm8-5addnodeto
BST
recursivelyDelete
node1.locate
it●
2.delete:thereare4
possible
cases-The
node
has
no
children:set
the
delete
node's
parent
to
null,recycle
itsmemory,and
return-Has
only
a
right
subtree:attach
the
right
subtree
to
the
delete
node'sparent
and
recycle
its
memory.—Has
only
a
left
subtree:attach
the
left
subtree
to
the
delete
node's
parentand
recycle
its
memory.—Has
two
subtree:to
delete
a
node
from
the
middle
of
a
tree,to
keep
thebalance,we
must
find
a
node,...,two
ways:·Find
the
largest
node
in
the
deleted
node's
left
subtree,move
its
data
toreplace
the
deleted
node's
data·Find
the
smallest
node
in
the
deleted
node's
right
subtree,move
its
data
toreplace
the
deleted
node's
data—Regardless
of
which
logic
we
use,we
will
be
moving
data
from
a
leaf
orleaflike
node
that
can
be
deleted.(a)Deletenode(44)thathasnochildrenbefore
23
dltpt(44(12
152
12(b)Delete
node(44)with
no
left
childbefore
dltpt
|231441252(c)Delete
node(18)with
no
left
childtree
dltptr12
44
~8
區(qū)4區(qū)
區(qū)2江(d)Deletenode(23)withtwochildrenafterafterafter52afterdltptr23i44beforebefore1if
(root
is
null)1
return
false
Base
case
12endif
Nodenot
find3if(ditkey<root->data.key)1return
deleteBST
(root->left,dltkey)
4
elseif(dltkey
>root->data.key)1return
deleteBST
(root->right,dltkey)5
else//deletenodefound—testforleafnode1
if(root->left
null)3recycle(dltptr)4return
true2
1el
(t
o
ght
nuI)
Base
case
2tiroo->rti
ro
cy=crloe-l
rf)t
After
node
deleted4
return
true3
elsel/
odi
f
ot
a
leaf
(or
leaflike),find
largest
node
on
left
subtree
lo)de
found,move
data
and
delete
leafnode4re
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東科技學(xué)院《環(huán)境材料》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東金融學(xué)院《設(shè)計(jì)色彩》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東建設(shè)職業(yè)技術(shù)學(xué)院《壓焊方法與設(shè)備》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東機(jī)電職業(yè)技術(shù)學(xué)院《測井?dāng)?shù)據(jù)處理與解釋》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工業(yè)大學(xué)《教育與心理統(tǒng)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工貿(mào)職業(yè)技術(shù)學(xué)院《國際商務(wù)函電》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東東軟學(xué)院《新聞理論》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東創(chuàng)新科技職業(yè)學(xué)院《水土保持原理與技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 《光合作用原初反應(yīng)》課件
- 廣東白云學(xué)院《數(shù)字信號處理及實(shí)踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 數(shù)學(xué)-2025年高考綜合改革適應(yīng)性演練(八省聯(lián)考)
- 景區(qū)旅游安全風(fēng)險(xiǎn)評估報(bào)告
- 建筑消防設(shè)施檢測誠信承諾書
- ojt問答題未升版ojt204
- 五年級語文滲透法制教育滲透點(diǎn)教案呈現(xiàn)
- 貝雷片-潮白新河鋼棧橋及鋼平臺計(jì)算說明書
- VF程序設(shè)計(jì)知識要點(diǎn)
- 凱普21種基因型HPV分型與其它比較
- 小學(xué)數(shù)學(xué)小專題講座《數(shù)學(xué)教學(xué)生活化 》(課堂PPT)
- 雞場養(yǎng)殖情況記錄登記表
- 高壓配電柜系列產(chǎn)品出廠檢驗(yàn)規(guī)范
評論
0/150
提交評論