




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- TY/T 1108-2024體育賽事活動競賽規(guī)則編制規(guī)范
- 工程課題立項(xiàng)申報書
- 儲罐氣體銷售合同范本
- 代駕租賃合同范本
- Unit 3 Keep Fit section B 1a-1d 同步課時講練(含答案)七年級英語下冊(人教版2024)
- 原料購置合同范例
- 公司食堂 燃?xì)?合同范本
- 印刷紙箱合同范本
- 產(chǎn)品折扣合同范本
- 課題申報書怎么寫作
- 《兒科補(bǔ)液》課件
- 2024解析:第六章質(zhì)量和密度-講核心(解析版)
- 培訓(xùn)學(xué)校教師崗位職責(zé)
- 基爾霍夫定律課件(共17張課件)
- 辦公樓維修改造施工方案
- 形勢與政策(貴州財經(jīng)大學(xué))知到智慧樹章節(jié)答案
- 老年髖部骨折治療指南
- 2024年度教育軟件采購合同
- 中華護(hù)理學(xué)會團(tuán)體標(biāo)準(zhǔn)測試題庫含答案
- 防暴隊形演練和講解
- 2024年精麻藥品培訓(xùn)
評論
0/150
提交評論