133
3.3-сурет.
Бинарлы бұтақ
Бұтақты басқа реттілікпен де қарап шығуға болады, мысалы,
алдымен
түбір, содан кейін ішкі бұтақтарға көшу арқылы, мұндайда келтірілген функ-
ция нəтижесінде (шығысында) кілттердің реттелген тізбегін алуға мүмкіндік
береді, өйткені алдымен сол жақ ішкі бұтақта
орналасқан кілттері кіші
төбелер қарастырылады. Төменде 3.3-суретте көрсетілген бұтақты қарап
шығу нəтижесі берілген:
1, 6, 8, 10, 20, 21, 25, 30
Егер бұтақтарды қарап шығу функциясындағы оны алғашқы пайдалану оң
жақ ішкі
бұтаққа бағытталаған болса, онда оны қарап шығу нəтижесі басқаша
болады:
30, 25, 21, 20, 10, 8, 6, 1
Осылайша, іздеу бұтағын мəндерді сұрыптау үшін де қолдануға болады.
Бұтақтарды қарап шығуда түйіндер жойылмайды.
Бинарлы бұтақтар үшін анықталған операциялар:
□ бұтаққа түйін қосу;
□ бұтақ бойынша іздеу;
□
бұтақты қарап шығу;
□ түйінді жою.
Əрбiр рекурсивті алгоритм үшiн оның рекурсивтi емес баламасын құруға
болады. Төмендегі программада бұтақтан іздей отырып түйін қосуға арналған
рекурсивті емес функция жəне бұтақтарды қарап шығуға
арналған рекурсивті
функция жүзеге асырылған. Бірінші функция берілген кілт бойынша іздеу
134
жүргізеді. Егер элемент табылса, функция
осы элементке нұсқауышты
қайтарады, кері жағдайда элементті бұтақтың тиісті жеріне орналастырады жəне
оған нұсқауышты қайтарады. Элементті қосу үшін бұтақ бойымен бір қадам
кейін өткен жолды есте сақтау керек жəне жаңа элементті қосу оның ата тегінің
1
оң немесе сол жақ ішкі бұтағына орындалатынын білу қажет.
Программа бүтін сандар жиымынан бұтақ қалыптастырады жəне оны
экранға шығарады.
Достарыңызбен бөлісу: