Binární vyhledávací strom. Proč binární? Vyhledávání

Podobné dokumenty
Předmět: Algoritmizace praktické aplikace

1. Implementace funkce počet vrcholů. Předmět: Algoritmizace praktické aplikace (3ALGA)

ř ř Ý Á Ř Ě É ů ř é č é ž ň ř Č š č š ž ř ý ů ů ř ž š š š é ř ř ř ť č ú ž ř ů ý š ý é ř č š ý č š ž č č ů Š š é š é ň éč é é ů š Š Š é ř š ř ž ý Ů Č č

ů ý ž ý ý ú Ý ů ý ů Ž Ž ú ů

ř ž ř š úč é ř š š č é é ř ř č ř š é Ž é č č Ž ř Í č š Ž š č ř Ž é é ŮŽ č ůž ř č š é ů é é ř Ž ř č ř ř š š Ž č šš č č Ž é š ů ů Ž č é č č ó č ř č ř č

ě ý Ž ž ž ř ř ř ř ě ě ř ř Š Š Č Ř Ě Ě ř ú č ě ř š ú ě ř š š ě Ú ý ě ý ů ý ř ě ý ř ý Ů ř š ý Ů Ž ěš ů ů Č ý ě Í š ů ř ů ě č ú ř Š š ě ř ě ř Š č ě č ě Ú

Á Ž č Ž ó ě č ý ž Ž ó ě Č Í ý Á Ž Ž č Ž ó é č ý Ž Ž Ó ě č ý Ž ř ě é š ě é ý č Ž Í ř Í č é ó é é Č é Ž č ž š č č ř ě ě ý ř ž ž é š ě ž ÍŽ é Ž Ž ý Ž ř Ž

ě ě é ň é ř ř ě ř é ě ě č ě úč ě é č č ě č é ě é čů ř ů č é ě ž ř ú ř ř č ř ě ě ř é Š ř é ř ě ř ř ú č ě ř é Š ř ě ř ř é č ě é é ž é Č é č é é ř ě žň ě

Í é čů č č č ů č č é ž č č č Ú ů č Ž Ú Č Ž č Ž š é ů é č č č ď ú ů ů č úč č š ť č č ú č ů š ů č š ů č č Š ů ď ú ů é č ď úč ú ů č č é š č č úč ú é ú č

č Ř Ě ů č ě ě ě ě č š ě Ž č úč úč ě č ú Š č ě š č Ž č Š ě š č ů úč Í Š ě ě Í Ú č č ě ú č č ě Á Ř Ř Ž Ý Ř Ř Í Ú Ž Ý č Ř Í Ř É ÍÚ Ř Ř Ř š ě č č Ř š ě š

ž Ř ž ě ě ž š š é ů ž ž Í š é ě č š ě é é š ě é š ě š ž é č ě š č ě é ž š č ž é ě é ě Ž ě ž é Ř ž ěž š š š é Ž ž ě é š č é ž Č š é ž ě Č ě Ř č ě š ě č

ž ú ú ý š ž ý ý ů ž ů ž ý ů š š ů ž ž ž ý Ú Ú Ú ň ž ý Š ý š ž ž ý š ú ý

ě ě é é Ú Ů ě ů ě ú Í Č ě ú é ň é Ú ě Ý é ů ě ě ě š ú ě ě š ů Ú ÚČ ě ň ú ž ú š ě é Ž é ÚČ é é é Š ě Ž ÚČ ň ÚČ ó ú ú ú Ž ú Č Ž Ů ú š ě Ý ě ě ž ú ě é š

ě ý ě é é é ě ř é č ě ř ů Ž ý ů š ě é č ř úč ů ř ř č Ž Í š ě ř é š ě č š é ř é é é š ě ě ě č ě š Ž č ě ř ž é éž é ě é ž ů é č ý ý ř ě ž š é é č ě ž é

č é ř ž ě ž č é ě ů ř č é ě é ěř ř ž ě é é é é ě ů úč ř ž é š ě ě ý ý š č ř č ř ů ř ě é č ý ý é ě ž é č č é ě ý é ž ě č ůž č č ř ů ý ř ě ř ůž é ě ů ě

ý ý

š č šú ň š š Ž č Ž š č ůž ň š ůž ů Í ž č č č ň č Ž Ž Ž Ž šú š ů š č š Ž Ž Ž š č č šú Ž ů Ž ž č Ž ň ú š Ž Ž š Ž

ě č ě é é ě ě ř ž ý ý ě é ř ý ě é ř ž č ů ě úě ř š ý čů č ý ě é ř é úě ě ě šš č ů ý ě ž č ů ě ž ř č č ý ú é ě ů ě ý ý ě é ř ž č ů ř ž č ě č ů ř š ř ž

ý ě é ř é é ý Č ř Ž Ý ě é ř é ř ž ř ě Ý ě é ř č ě ř é č ě ř Í ý č č č č é ř ě š ě ý ř ý ý ř ě š šť ů ř é ú é ž č é ř é ř š ý ů ř é é ř č č é é ě ž ý ě

ř Ú ř ě é ř č Č č ěř ř ě é ř Ú Č č é č č č ř š ú č č ř Ú ř ě é ř č Č č ěř ě ř ě é ř Ú ó ř é č ě ý č č ú č č ř Ú ě ř ě é ř č ó Č č Ú ěř

ý ý ý č ý č ú č é č ý Ž ú ý č č é č ů č ů é é č é č ůž č ý č č č ůž Ž ýš č č č ý ú š č ů ýš č ýš ž é é Ž ů é ů ý é Ž ů ý ý Ž č ů Ž é úč ý ý š

ž ř ž é ň ž šš ř ň ř ř č é é ř é ž é ř šř š š ř ř č é š é é ř é č č é ř é č é ř

ž ř ř ý Ž š ý š š Ž ř š š š ř š ý š ý Ž ů Ž ž š ý Ž Č š ý š Ů Ů ř ř š š ř ý ý ž ý Ž šť š ý ý ý ý ů ůž ý ý ř ý ý ž ý Ž ý ú š ý Ž Í ů ý ů ů ů ú ý ů ř ý

Úč ř ž Í Í š Í ř ň ř ň ř úč řů ř č ů ú ř ž č ž ř Ž Ý ú ň ú č Ž š š č š ř š Ž úč Ž ř š Í Úč Ž č Š č Ž ť Ž š Í ř š ř úč ú ř ů ů Ž Ž š šž Ž ř ů úč Í č ó

ř ř š ř ů ř ů ř Í š ř ů ř ř ř ů š ů ř ř ů ř ř ř ř Ž ř ř Ž ů Ž š ž ř š ů ž š ř Ž ů ů Ť š Í ú ř Ž ř ř š ř ů ů Ž ů ř ů Ž ř ů

úč ů ů úč é Ž ýš ř é č ý ř ů ř úč ř ž é é é šť é é ř úč ž é é é šť é é ý é ž é Ž ý é ž é é é č ý ý ř ň é ř Ž é é é č ý ř č ý ň ý ř ý ý é ú ů é Ž ř ř ý

é ů č ý Š é ů č ý é ů č ý é č ú č ú ý ý ů Ó ý ů ů ý ú č ú č ž Ý č ý č ý ů ú ý ů é Ž Ž č č č č é ý é ů č é Ů č č é ů Ý é ů é ů Ó ý Ý é ů č Š é ů č é ů

ž á ř ě é é č á á ž č ě á ř č ě á á á ě ř ě ý é á š ň ř é ř š ý á ř ů á á ě Ž é ýš é č ž á á á ě ě á á á ě řá é ň é áš á á á ě š é ř ě á Ž ž á ř ččá č

ý ř ě ř é ř ě ř é ř ý ý č ř ě ě ř é ě ý ř č é ř ý ý č ý ě ř ě ř ě ř č ž ů é ů ě ý č ě ě ě é ř ě ř é úč ř úč Í ž č ý č é č č úč ý č ž ž ů ř ž č é š š ě

ř ř ů ř ř ň é ř ň é řú é ř ř é ď ň É ř ň ř Ě ř ď ř é šš š Á ů é š ň ř ů šš ň Č é ř é ř ů ž ř ů žš é ř ů ů ř é ř ů ů š ň ř ů

ř š ř ů úč Ž č Š Ý Ý č Ý ř ů ř č Í č Ý ů č č ó ó ť ó ů č č ř č Í ů ů ů ů ů Ý ů č ř

Ú č š ů č éč ě š č ě š š ě ú ů č é é š č ě é č ú ě ě č ě č ě š ň č ů é é é é ě č é š é é é é é č ě š é č é é é é é Ž ě é é č Ý č

Č Í Ý ž Ý ň š š ň ůž ůž ž ž ů ůž ž ž ž ž Ý Ý ť ž ůž ů ž Á š ž š ž ž ž ž ž ž ž ž ž ž ž Ý ůž š ž š ž š Ý š ť ž š ž ž ť ž ž ň ž ž ž

ě ě ř č é Ú ěř Ž Ř ž Ú ě č ů é Ů ě ě ú Ú č ú Ú Ú ě Ú Ú č ú ú č č é ě ř úř é š Č ř é ě ž úř ě é č ě ě Úř ě č ř ř é ž ě é ě é ř ů ň ž ř ě Ž ř ť ě ř é ě

Č Í ů ž ů ě ů Ú Č é č ý Ž ě ž č š ó é Ž é č é ě ě Ž é é č č é š éč ě ý ů éč č ě ý é ě ě ž ý ů č ů č ý ěž é ň é č ě ž č ě ě ý š úč ý č ů ěž ů ý č č ě ú

í ž š š í ě ž é ý č řé í ž ě š ř ě é ř ř ž ž í ž ř ý ě ží ř ž ý é ě š é é ří š ř ě é ř Ž ř š čé ú í é ř č ě ř í ý é ě ř ží ř é ě í ž ž ý č ř ž ě é ž ý

Ú Í Ú Č ý ý Ú ý Ú Ú ů ý ýš ů Ž ů š ů ů ů ý Ů ú ý ů Ú š ý ý ý ý ů ý Ž Ů ú ž ýš ý Ú ž É Í ý Ý Í Ú ý ý ú Ú ý ú

ž ý ůž ý ý č ů úč č ý ý úč Č ž ž ý š č šť č ž č ž č Č č ř ů č ř ý ů ř ž ř č ý ť ý ú ý č úč ť š Č č ý ů ý úč ž ú ř ů ú ý š ů ý š ď š úč ž ř šť č ý ů č

ů ž é ů ž ů é ů ůž ž é ů ř ý ž ě é ů é š ř ž ž Ů ů ř ě é ř ú ř ů ž ř ě ý ř ů š ů ž Š š ů ž ý ě ř ě ů é é Ů ž ě ř ř é ů ě ř ě ý ž ř ě ž é ů ů ž ř ž é ř

V B r n ě, 2 4. b ř e z n a

č é é ř á é é č é é á č á ý á é á é Čá é é ř é é Č ý ú Č Č áč ý ď ď Č ř ř Č á ý ř ů ž á ů á á č á ž ó ý ř č ý ý ů á á áč Úč á ž á áč áš ř ů á á áč ů é

Ř Ů č č č ň ř ň ř ř ř ř Ú ž ř Í č č č č ň ř č Ž ň ř č ň ř Ů ů ř ů ň ří ů ň ř ř ů ří ú ů ň ř ž ž ž ž ž ž ů Ž ř ú ň č ž ř ř č ž ž č Ž č ž ň ň ří č ř ř ž

ť Č č č š ě ě š é ě č č ý č ý Č ý ů č Č é ě ěř č š ě š ó ů ř ý ě

Í Ý É É Í é ěž š ž ů ó ř ř ů č ě ů ř ů ě ě ú ř řů ů ě ě ě ě Í Í ě ř č Í ů ě ů Ů ř Ě ř ě š š č Ě ř ě ž ů ř š ó é ž ř š š Č ř ř š ů š ř č ř š é é ě ř ř

ř č é ý ý é ř š č ř ý Í č š č ý ů ř é š ř ř ř š ý ž é č ř é ý ý š é ř é ů é č é č é ř Ť ýč ř š éč é Ž ř ř š č ó š ř ů Ž Ž č Ž é Ž č ů šš Ž ů ů ž č ř ř

Ž ř č ř ž ž ý é é Ž č Ž Ó Ář Ý ť Ó Á č ř ď ý Ť ě ř č ý é ě š ť ř č ý šř ř é ů ý ů ří šř Í é č Ě ěž ě é ř č č š č Í ú Í Í ž č š šž é é ŽÍ ž é ě č ř Íš

ý č č é ý Ž ý ž é ž é ž é é é č ý č č Ř é č č Ž é é č é ž č é ý č č č ž č é Ž é ý č é Č ž ů ý ý č ů ý ů Č ž ů ů ů ů č é ů ů é č ů č é č ů ž ý ž č č č

Ú č Č ě é č č ú ŠÍ ú š ě é č Á ě é č č ž é ž é Č é ú š ů č ě ů ž ý č é č ú ě Ž ú ž č č č é š č ú ě Č č š Č ě ě š ů ě č Č č é č Č Č ě ý ě Ů é ě č ú ó ž

č ú ž ů č ň č ů ů ů ř č šť ř ž š ď Ě ž ř ď ř š ř š šť ř ž ř ř č ú ů č ř ů šť ř č ř š úř ž ů č ž ř ů š ř ř š ř č ů ů š ř ů ř ů š š š ď ň ř č Č č Č ř Č

ř š ř š č ř š Š šš č ž Á Š ř š č č ř ů Ž ď ř š é š Š ř š š Ť Š é Š Ž ž ů é č č ř é é č ž ř š š é ř é č é é š é š č é ř č š é č ř ů é č č č š š š ž é é

š š Č Í š ť ň č č š č ť č č Ě č š š č č š ň Ý ň č č š č Í č Ě č ň č ň š š Í Ý ď ď ň Í Í č č č č Í ť Í č č ň ň

ž ž í ě ů í ě í é ě ě č ěž ů ř ě ě č č á š ě ý ř í ě ů ě á š ě ě ý ž čů č á í ý ů ří ě í č éč ě á ší ž á á í ě í ř í á í ý ě í í ř í á ě ě ě íš š ě í

á ý á á ú ú ř ý ý ů ě ů ř á á á á ě ě š ř ů á ě ě ě ů ř š ý š ě ů ž ář ř ř š ý ář á ě ř á ý ě ů á á á ě á ž ě ě ů ě ý ě ř ě šť Č ý á á ř á ě á ř ý ý á

ě ř ý ě ě š ř ů ř ý ů ě ý ů ž ž č ř ů č ř ř ř č Š č ě ř ě ů ý Č ě č š ř ř ř č ř ř ý ž ý ř ě ě ž ě ž ř ř ž ř ř ř ě ě ř č Š ě ě ř ě ř ě ů ý ž ř ě ř ě ě

Ť ŤÍ ň ň č Ó Í č č Ť Ť Ť ň ň ť Ž ň ť ň Í ů ň ň ň č ť Í ŤÍ č Ť Ť č Í Ť č č Ť Ť Ď Ť č Ť č č Ť č Ť č ť Ť Ž Ť č Í Ž č ú Ť č Ý Ď č Ť

áš š ž á ě č á ě ž ů ý é š ž á č é ě ř ě é á ě č é á á é ě ř ě ř é čá á é č Č ý ě ý á á á é é á é é č á á éž ý á č ř ě š ů á á Ů ě ý č á ěž á é č á á

ú ž ž ě š ú ú Í ž ř ž ě ř ž ř Ě Ý ž ž ř ě ž ě š ě ň ů ú ž ř ř ě ř Ž ě ř ž š š š ř ě ů š ř ě ř ě ů ří Í ě ě š š ř ž ě Í ř ě ě ž ř ě ě ž ě ú Í ř Í ř ř ž

ř Ž ř ě Ž ř ě č ě ě ý ř ř ě

Úč é ř é ž é é žň é č ž š é é é é ž ů úč ó ř ž é š ý ý š č ř č ř ů ř é č ý ý é ž é č č é ý é ť ž č ůž č č ř ů ý ř ř ůž é ů ý ý ů ž č ř ůž ý é ůž ř ř ž

ě ň ě ě č ž Š ě ž č ž Č ů Ňě ň ť č ě ě ě ě ř ů Ž ř ě ř ě č ř ě ř Č ů č ě Ú ě č š ě č ř ž š ó č ě ě ě Č ů č š ů ě ů ěř ě ů č ě řš ň Ž ř ř ě řš ě ě ž ě

ř ř ň š ž ř ů ř ř ž ř ř ř ř ž š ř ú ž ů ř ř š ž ů ř ř ř ř ř ř ř š ř ž ř š ž ř ř ž ř ž ř ž š ž ž š š ž š ř ř ř ů ž ř ů ž ú ř ř ř š ó ř š ž š ř ř š š š

č É É Ě Í Í Í í é í č é Ť í ě ě Í á á Ť í á í í í í Ť é í ě í í ě ž í é ě í Í í ž š é í á á ě í ž ě ší í í í ě ě ž íž í š í í é í í í ě Ť á í í í í á

É ž ř Ž á ě Ý ÚŘ Č Ž ř á Ř É ý úř é ž ř ě ě ě ř š ý á ř á č ě ě š ř ů á č á řá ě ě š ř ů á á řá á č ě ř ě ě š ř ů á á ě á á ř é ý á š ě ř é ý ě ž é áš

š á Ž í ěž ě šíť í á Ž é ž ž í ě í á á ž á é ě í ě ší í é é é é ž é á č á ň ě ší í é é é ě é ě á á Ť í ž á é í Ť é í Ť č ží ěť á Ť ší é í é í é ř í í

č é ě ě ýš ý š ě ě ý Ž č ů ř é č é ý Úř é ý ě ů ň ú č ú ž ž ě Í ý Ž Ů ů ý Ž ů ě Ž š č ě ř č é Í Í é š ž ř ý ů é Ž Ž Í Ž č ř ě ý Ů Ú ě Ž ě ý Ž ě Ů Ž ě

š ů ž š ž ž ž š ů Ř š ů ů ž ž ž ů ů š š ů ů ž ž ů ů ůš š š š š š ž ž š š ů ů ů ž ů ž š ž ů ž ů ů š ň ů š ů š š š ó ž ž š š ů ó Ú ů

Ú é ů é Ú é Ž é é é ě Ú ž é ě ž Ž ě é ě ě ě ě é ě Ú ě ž é ě ě Ž ě ě ě Š ě ó ě ě Í é Ž é Ž Ž ě ě ě ě ě Š ůž ě ěž Ž Ž ě Ž Ž Ž ě ň ň ě ó é Ž ě


ý ýš ý ýš ř š ž ď ýš ý ó ř ř ř ř ů ýš ř ť ň ý š ř š Ň ž š ř ř ó ý ř ň Á Ň Ň Ž Ř ň ú ž ř ů ž Ť ř ý ý Ě ó ř ř ň ý ň ú ř ň ý ž ň ů ó ú ó š ú ú ý ý ň ý ň

ě š ť ť ů ě ť č š é ě é é Ž š Ž š š š ě č š š ě š š ě šť é š Š é ě Í ú ě ě Í ě ů é ě ě ě ě š Í š Ž ě ť č ě ť Ž š é é é š ě ú ě Ž ě š š ě Ž ů úč Í é Í

ý é á é ě ž ě š á á ř ů ů č á ý ž ř á č ý ř é ť ž ě š á á ř ů ů č á ů ý ř é ý á ř š ý ř ě é ý é č č á é č č á á č á á ř ě é á ě ř á ž ř é á ú ž š ě č

ě é á í í é ž á ě á í Ťí čí ě á í áč á Ů á č áí č á á í Ťí í ě ž é á ě é á á Í ě Ž ě á á í ě ž ě čí ě é á ž Ť žě í í ě é á é í é ú í é á ěž é é ě é ě

Implementace binárního stromu směrníky

Ř ů Á Ř č úč ý ý ý ú ý č é ř ú é č é é ý ě ř ě ý ů é ř ě é č č ň č ě č é úč ě ř Č č ů ě č é č č č ěř ý é ů č é é č ů ú é Č ř ý ě ř é č ň é ú ě é ř é š

ří ěř čí Úč í ú í Ť í á č ě í ě č íř č č Úč í ú í Ť í á ř áš Ří á č íř č č č í č č č š Š š á ý ěčí č č á á ý ěčí č č Š ý áš š č ř ů č íč č č č š č íč

Ť Ě š ú ú š ů ú ú š ú ú š ú š ú Ý š Ř Ý š š ů ů š ů š ů ú š

ň ť ř ř ž é é ř Š Š ú Š ř é ú ř ž ů é ó ř Úř Č Ú ž ř é ž é ř é š ř ř ž ř ř ž ž é é ř ř Š ó Š é é ú é ř é ř ů ř ř ž š é Ž ř Ž é ř é ů ř é é Ž ř Ú Ž Ř Č

á ž á á á áš ň ž ů ý á ý á ř á á řá ů á áš ž ž á č š ř á č ýš ý ý á č á ýš č ř š řů č ý č ý ýš á č ýš á ž á á š č ý á č č ý á řů č ý č š á á řů ř ů á

ě š ě č č Č Č Č Č ú č Č ě Č č úč č ř ř ě ě ě š ř ů

ý Č é é é ř ž ý ý ý ý ř é ř ý é ž Ž š ř ý ý ž ř ř é ř é ř ř é Ú š ř ž ý ú š ž ř ř ž é ž ň š é ž é ř ý ř Š ž ř é ž Ů é é ŽÍ ú é ý š é é ž ýš é é ž ř ž

Í ř Č ý ř ů ů é ř ě ř ě š ř ě ů ó é Č ů é Ů ř ú ř ř ú š ř ý ů Č Š ř ě ř ý ě ž ý Ž ř ž é ó ř Ú Č ý ž ý ř é é š é ú ž š é Ů úč ž é ú Ž Š ř é ú ř ý é ř ý

é ř č é š é š ěř ř é ř ř ěř é ý č é ř ě š ž Ť ý é ž é ě ř é č ě č ž Í Ž ž ý é ě ž ž š ý č é ž é Ž ě é š é é ř é ě šř ř ě ř é Ž é ů ě ý ř ůž ý ě é ú ě

é ě ý ý ě č úč ú č é ý č ě ě ě é ý ě ý ě ů é é ěř ě ů ř ý é č ú ě é č ě č žú ě ě č Č ř č é č ý č ř ů ó č úč ů ž úč ř é ň ž ž ě ě úč ú ě ý č ý ě ý ř ě

ří í é í é ž č é í ř ě í š Ž š ž á úč é é ř ě ů í ě ě ý č í ý ú é á á ě é ě í č é č ář č é í é é ě é ž í ý ů ů á č é ž ě é ř á í č í č á é ě ž í é ší


š á ó í ž š é č ž í š á ří š á í ř íž á áš ž č č í á Š á ě á ě í é ě č í á ž í š šťá á šťá á í í á í á í é ž á á í š á í é é ž é ž í ž í é ž ý á á é ž

š ž š Ť ž Ž ž Ť Ť Ť ž ž š Ž Ž ž ž Ž č č š Žď ž ž Ť Ť ž ž ŤŽ ÍÓ Ť Ť ť š Ť Ž Ž š Ť š š ž š ž ď č š Ť Ž Ď Í Ť š š Ž ž š Ž š č š č šť š Ť Ť Ť š Ť ž š Ž ď

ř ě ě é é é ř ž ž ě é ř ř é ř ě ě ž ř ř ě ýš ýš ó ě ý ř Š é é ž š ě ř ř ž ýš ř ě é ž é ů é ě é ř ř é é ž ě ř ě ý ě ý

š Řš š ř Í ť řť Á É Š ř ě ř ě ě é ý ě ř ů ý ž ž č ů š ř š ě ž é ř Ž é ý úč ů ě č ý Ť š ž ů úč ů ů é čé ř ý é Ž ý ý é ř š ý ě č ý ě ý ý ř ě é é ý ž ý ř

Ý ň č Ť š ň Ť š ň č š š Ť š Ť čč Ť š Í č č Ť š č Ť Ť š š š č č ň š Ó č č š š č š š Í š Ť Í š Ť č Í š Ť š š Ť Ť š š Ť Ť Ť Ť Ť č š Ď č č š Ť Í š č č Ť č

ř ě š ý č ů č č ý č ý š č ý ý ž é ž ě š č ř ý ž ž č ě é ý ž ě š ř ů č ř ř ž ř č ř č ě č ě ě ř ž ž ó ň ý é ě ý č š ř ě šš č ř ý úř é č č ř ýš č ř č ě č

šš ě ř ý ý ř ň ý ů ě ý ů Č Č

č č ý ěř ě á á ř čá č ý ěř ě á á ř čá č č ů ý č ý ěř č č ý ěř á č ý ěř ý ř ě ý ěř ř č ý ěř á ů č ý ěř č č ý ěř č č ý ěř č č ý ěř č ý ěř á ů č ý ěř č ý

á ř č á é Ž ř ů á á ř á Čá Ž ř á á é ž ř á á Š ý é ř é ř á ř Š ář ř ž á ř ý ž á ř á ý ú ů á ř ý á á ú ň ý ř č á č ř Ž á á Žá ý ý ř ý ř č ú ř ůž á žá ý

Ž Ž č ž ě Ž č ě ě Ž ě č ť ě ě č č č č ť š Ž Í ě Ž č š ě č ě Ž č š Ž ť š č Ž ě Ž č ť č č č č ě Ž č š ě ě Ž č ě č č ž ě Ž č ě č š ě ě Ž č č ě Ž Í ě ž č

ěž Úč úč Í ěž Ž č Ž ž ů Á Č Č Ž Úč Ž Úč Ž ň ž Ů č č Ž Úč Ž Í č š ě ň ó ÚČ č Ž Úč č Č š Ž Š Š ÍŠ

ř é ž é Č ř ý é ě ř é Š Ě Í Ě ě é ř ř ý ř Č ř š Í Ř Ě Ě Í Ř É Á ř ě ě ř é ř ě ě ř é ž š ě é é ř ý ě éž š ě ě ú ž š ě š ě ř š Ů ý ž ž ý ř š ě ř š ě š ě

ř é č ě ě ý Ž Ž ů é é ý ě ě é ě é ý ý ě é ě é ž ř š ů ě ě é š é é ě ž č é ř é ř š č ě é č ě ě š ý ž ě ý ě š ř é ř é ý ě é č ý š ý Ž č ř ý ý ř š ů ě é

ž ř ě úř ě č é ú ě ř š ě ě ě ř ě ě é ý ě ě ř ř š ř ě é Ů ě ě ž ý ě ý ř ě ý é č ú ř ě ě š ř ů š ě ř ž ť š úě š ň ď š ě ý úř ř ý é ě é ý ř ě ý ěř é ý ě

Ů ý ů Č Ž Ž Ú ž é ů é é Č é Č é Č é Č ý é é ý Č é é ýš ž é ý é é Č ý é é ý ý Ú ž Ú Ú š Ž é ž ý Č ÚČ Ú š ž ž ň é ž š š žň ž š š š Í é ž ů é é š š

Transkript:

Binární vyhledávací strom J e d n á s e o o d rů d u o b e c ně j š í d a t o v é s t r u k t u r y z v a n é s t r o m. P o j e m p o c h á z í z t e o r i e g r a f ů, k d e j e s t r o m e m n a z ý v á n s o u v i s l ý g r a f b e z c y k l ů. S k l á d á s e z u z l ů a h r a n. V p r o g r a m o v é r e p r e z e n t a c i j s o u u z l y z á z n a m y a n e s o u j e d n a k i n f o r m a c i, j e d n a k o d k a z y n a d a l š í u z l y. H r a n y j s o u r e p r e z e n t o v á n y u k a z a t e l i a u rč u j í v a z b y m e z i j e d n o t l i v ý m i u z l y. S t r o m y č a s t o b ý v a j í z o b r a z o v á n y g r a f i c k y: P o j í s e s n i m i c e l á ř a d a t e r m í n ů. P o k u s í m s e j e v e s t r uč n o s t i s h r n o u t. U z e l z c e l a n a h oř e, k t e r ý m s e v s t u p u j e d o c e l é h o s t r o m u, s e n a z ý v á k oř e n. U z l y, k e k t e r ý m v e d o u h r a n y z ně k t e r é h o u z l u, j s o u o z n ač o v á n y z a s y n y t o h o t o u z l u. K až d ý s y n m ůž e m í t s v é s y n y a ti z a s e s v é a t d. S y n s e v š í m s v ý m p o t o m s t v e m t v oř í j e d e n z p o d s t r o m ů o t c o v s k é h o u z l u. L i s t y j s o u p a k u z l y b e z s y n ů; ji m i s t r o m k o nč í. Če t n o s t s t r o m u j e m a x i m á l n í p oč e t s y n ů, k t e r é m á ně k t e r ý z j e h o u z l ů. C e s t a o d k oř e n e k ně k t e r é m u z u z l ů s e n a z ý v á vě t e v. V z h l e d e m k t o m u, ž e s t r o m y n e o b s a h u j í c y k l y, j e vět e v vž d y j e d n o z n ač n ě u rč e n a. A k o n eč n ě h l o u b k a s t r o m u j e d é l k a (p oč e t h r a n) m a x i m á l n í vět v e. U d á v á, j a k á j e n e j vět š í v z d á l e n o s t m e z i k oř e n e m a ně k t e r ý m z li s t ů. Proč binární? B i n á r n í: Č e t n o s t s t r o m u j e d v ě. K až d ý j e h o u z e l s m í m í t n a n e j v ý š d v a s y n y. P o už í v a j í s e p r o n ě u k a z a t e l e L e v ý a P r a v ý. Vyhledávání T e n t o d r u h s t r o m u j e o r g a n i z o v á n p r o s n a d n é v y h l e d á v á n í j e d n o t l i v ý c h p r v k ů. Č á s t n e s e n é i n f o r m a c e t v oř í k l í č. K l íč e v l e v é m p o d s t r o m u k až d é h o u z l u j s o u vž d y m e n š í n e ž k l í č u z l u, k l íč e v p r a v é m p o d s t r o m u j s o u n a o p a k vět š í. D í k y t o m u j e v y h l e d á v á n í u rčit é h o d n o t y k l íč e s n a d n é. J e-li m e n š í, n e ž k l í č z k o u m a n é h o u z l u, m u s í s e p o k r oč it k l e v é m u s y n o v i. J e-li vě t š í, b u d e h l e d á n í p o k r ač o v a t v p r a v o.

P r a v i d l o m e n š í v l e v o, vět š í v p r a v o j e p o mě r n ě v o l n é a u z l y l z e v e s t r o m u u s p oř á d a t m n o h a z pů s o b y, a n i ž b y d o š l o k j e h o p o r u š e n í. O v š e m p r a v i d lů m t a k é v y h o v í z c e l a d e g e n e r o v a n ý s t r o m, j e h o ž k oř e n p o n e s e k l í č 2, v š e c h n y u z l y b u d o u m í t p r á z d n ý l e v ý p o d s t r o m a j e ji c h p r a v ý m s y n e m b u d e n e j b l iž š í h o d n o t a. T a k o v ý s t r o m v p o d s t a t ě př e š e l d o li n e á r n í h o s e z n a m u, n i c m é n ě s p lň u j e v e š k e r é n á r o k y n a b i n á r n í v y h l e d á v a c í s t r o m. Praxe: Ze všeho nejdříve se podíváme na deklarace, jejichž pomocí budeme strom realizovat: type strom=array [1..100] of Integer; var st:strom; počet, cis:integer; ^tato část kódu nám říká, že strom budeme vytvářet pomocí pole, a zadeklamovali jsme si základní proměnné, které budeme později používat nyní rekurzivní procedura pro vytvoření samotného binárního vyhledávacího stromu: procedure VytvorBVS(i,x:integer; var s:strom); if s[1]=0 then s[1]:=x; pocet:=1; s[2]:=0; s[3]:=0; if x<s[i] then if s[2*i]=0 then s[2*i]:=x VytvorBVS((2*i),x,s); if x>s[i] then if s[((2*i)+1)]=0 then s[((2*i)+1)]:=x VytvorBVS(((2*i)+1),x,s); procedura pro vytvoření hlady: procedure halda; var i:integer; for i:=1 to 100 do st[i]:=0; halda se musí vytvořit ihned se startem programu, to uděláme tak že jí vložíme do procedury samotného Formuláře: procedure TForm1.FormCreate(Ser: TObject); halda; procedura pro vytvoření stromu ze souboru s čísly:

procedure TForm1.Button2Click(Ser: TObject); var f: TextFile; a: Integer; AssignFile(f, 'File1.txt'); reset(f); while not EOF(f) do readln(f, a); VytvorBVS(1,a, St); CloseFile(f); procedura pro výpis do mema: procedure tisk (i,h:integer); var s1:string; j:integer; if st[i]<>0 then tisk(2*i+1,h+1); s1:=''; for j:=1 to h do s1:=s1+' s1:=s1+inttostr(st[i]); memo1.lines.add(s1); tisk(2*i,h+1); memo1.lines.clear; tisk(1,1); '; přehlednější než výpis je však grafické vykreslení do komponenty image, to uděláme následovně: procedure TForm1.Button3Click(Ser: TObject); procedure vykresli(i, x, y, sirka: Integer); sirka:=sirka div 2; if st[2*i]<>0 then image1.canvas.moveto(x,y); image1.canvas.lineto(x-sirka,y+30); vykresli(2*i,x-sirka,y+30, sirka) if St[2*i+1]<>0 then image1.canvas.moveto(x,y); image1.canvas.lineto(x+sirka,y+30); vykresli(2*i+1,x+sirka,y+30,sirka)

Image1.Canvas.TextOut(x-5, y-8, IntToStr(St[i])); image1.canvas.brush.color:=clwhite; image1.canvas.brush.style:=bssolid; image1.canvas.rectangle(0,0,image1.width,image1.height); vykresli(1, image1.width div 2, 10, image1.width div 2,); ^zde by bylo možná lepší proceduru lépe popsat, jelikož je dosti dlouhá: Procedura pro vykreslení je součásti procedury buttonu3, na který když klikneme tak se nám strom vykreslí, zadali jsme si několik proměnných i pro číslo, x, y a šířku výpočet pro souřadnic. Nejprve zjistíme, zdali strom není prázdný, pokud ne tak začneme vykreslovat jeho levou stranu. Příkaz MoveTo je pro přesouvání kreslícího pera na pozici x a y, a LineTo nám kreslí spojnici (větev). Totéž uděláme pro pravou stranu. Nakonec příkazem TextOut vypíšeme ke každé větvi její číslo, nebo chcete-li její hodnotu. To je celá procedura na vykreslení. V proceduře samotného buttonku pak pouze smažeme plátno, nastavíme vlastnosti kreslicího pera a zavoláme proceduru vykresli.

Čtvrtou a poslední částí programu je vyhledávání námi zadaného čísla: samotná vyhledávací procedura: procedure vyhledej (x,i:integer; s:strom;var a:integer); if x=s[i]then a:=i; if (x>s[i]) and (s[(2*i)+1]<>0) then vyhledej (x,((2*i)+1),s,a) if (x<s[i]) and (s[(2*i)]<>0) then vyhledej (x,(2*i),s,a) a:=0; button pro button: procedure TForm1.Button4Click(Ser: TObject); var cis: integer; vyhledej(strtoint(edit1.text),1,st,cis); if cis<>0 then memo1.lines.add(' '); memo1.lines.add('číslo nalezeno na řádku:'+(inttostr(cis))); memo1.lines.add('číslo nebylo nalezeno');