- •1. Ақпараттық іздеудің қарапайым есебі
- •3.Бинарлы ағашты симметриялы ретпен айналу.
- •4.Бинарлы ағашты тура ретпен айналу.
- •5.Бинарлы ағашты кері ретпен айналу.
- •6.Avl ағашта сол жақ және оң жақ бұрылыс операциялары.
- •7. Ықтималды іздеу ағашы.
- •8.Бинарлы іздеу ағашының элементтерін жою.
- •9.Қызыл-қара ағаш және оның ерекшеліктері.
- •Қызыл-қара ағаштың биіктігі
- •Операциялар.
- •Қызыл-қара ағаштың артықшылығы..
- •10.Бинарлы ағаш тұрғызу алгоритмі және олардың арнайы ерекшеліктері.
- •11.Толықтау бинарлы ағаш.
- •12.Бинарлы ағаштың көрсетілуі.
- •13.Іздеу бинарлы ағашынан элементті жою
- •14.O(n log2n) күрделілігімен сұрыптау.
- •15.O(n2) күрделілігімен сұрыптау.
- •16.Бинарлы ағаштармен жасалатын стандарты операциялар.
- •17.Бинарлы ағаштар және оның қолдануы.
- •18.Бинарлы ағашта кесте құру және оның ерекшеліктері.
- •20.Шелл сұрыптауы (Shell_sort) және оның ерекшеліктері.
- •21.Quick_sort сұрыптауы оның ерекшеліктері.
- •22.Пирамидалы сұрыптау алгоритмі (Heap_sort) ж/е оның ерекшелік/і.
- •23.Newman_sort және оның ерекшеліктері.
- •24.Экстремальды қасиет/і бар бинарлы ағаштың арнайы ішкі класс/ы.
- •25.Бинарлы ағаштар қолданыстары және жалпылаулары.
- •26.Квадраттық xештеу.
- •27.Avl ағаштары.
- •28.Стек
- •29.Сызықты хештеу.
- •30.Қос хештеу.
17.Бинарлы ағаштар және оның қолдануы.
Циклы жоқ, түбір деп аталатын ерекшеленген төбесі бар ақырлы байланысқан граф ағашы деп аталады.
Ағаш түбірімен қабырға арқылы байланысқан төбе оның тікелей ұрпағы болып табылады және бұл төбе мен сәйкес қабырға туралы олар түбірден бастау алады деп атайды. Әрбір мұндай төбе, егер ол соңғы болмаса, өзінің тікелей ұрпақтарына ие болады және т.с.с.. Бұл кезде ағаштың кез-келген төбесінің тікелей ұрпақтары туралы олар осы төбеден бастау алады деп атайды. Осындай төбелерді тікелей ұрпақтарымен қосатын қабырғалар туралы да айтуға болады. Мұнда ескере кететініміз ағаштың ақырғы төбелерінде ғана тікелей ұрпақ болмайды, бұл төбелер туралы әдебиеттерде басқа да атау бар – тығырықты немесе ілінген төбелер деп аталады.
Көбіне ағашты кеңістікте тұрғызғанда, мысалы жазықтықта ағаш төбелерін деңгейлері бойынша орналастырады немесе ярус бойымен. Ағаш түбірі 0 (немесе 1) деңгейінде орналасады, ары қарай түбірдің тікелей ұрпақтары келесі деңгейде орналасады және т.с.с.. Нәтижесінде ағаштың бірдей деңгейінің төбелері бір горизонталь бойына орналасады. Ең төменгі деңгейге ақырғы төбелердің кейбірі орналасады, ал қалған ақырғы төбелер ағаштың түрлі деңгейлері бойынша таралып орналасады. Егер мұндай ағашты өз центріне, яғни түбіріне қатысты 45 градусқа бұратын болса, онда мұндай түрлендіру нәтижесінде алынған фигура – сол бұрынғы ағаш, алайда оның бір деңгейдегі төбелері бір түзу бойымен орналасады, бірақ олар әр түрлі горизонтальда орналасады.
Сонымен, бинарлы ағаш деп әрбір төбесінен, түбірді қоса алғанда, екіден артық болмайтын қабырға шығатын ағашты айтады. Бұл кездегі бинарлы ағаштың әрбір төбесіне кіретін қабырға бірден аспайды.
Деңгейлерді сақтау ағаштармен орындалатын стандартты операцияның бірі – ағашты айналу кезінде көмегін тигізеді. Ағашты айналу кезінде оның барлық түйіндерін бір реттен ғана өтіп шығу қажет. Айналудың үш негізгі типі бар: тура, симметриялы және кері ретпен.
Бинарлы ағаш тәрізді құрылыс/конструкция/ практикалық жүйелерде қолданылғанымен, бинарлы ағаштардың Computer science аймағының өзінің ішінде қолданылуының көбірек маңызы бар. Бинарлы ағаштың қолданылуының бір түрімен оның айналымдарын анықтау кезінде таныстық, онда бинарлы ағаш арифметикалық өрнектерді көрсету үшін қолданылады.
Бинарлы ағаштың қолданылуының классикалық және анағұрлым көбірек айтылатын түріне минималды артықшылықтың Хаффман-код аталатын кодын құру үшін қолданылатын бинарлы ағаш жатады. Керісінше “Мәліметтер құрылымы” кітаптарында бинарлы ағаштың дискретті оптимизация алгоритімдерінде қолданылуы тәрізді оның маңызды қолданысы туралы айтылмайды, мысалы, бұтақтар ме шекара әдісі тәрізді алгоритмдерде. Бұтақтар мен шекара әдісінің алгоритмінің негізгі мақсаты шешімдер ағашын құру екенін еске салайық. Ол ағашты құру кезінде дискретті экстремальді есептің оптималды шешімі табылады. Коммивояжер есебі жағдайында есеп шешімін, яғни коммивояжердің ең қысқа маршрутын осылай табады. Бинарлы ағаштардың шектелген – детерминдалған функцияларды беруде қолданылу мысалдары белгілі, мұндай функциялар туралы ғылымда бұл ағаштар арнайы атөа ие болады – нөмірленген ағаштар. Бинарлы ағаштар UNIX – та үрдістерді басқару жүйелерінде де fork жүйелік шақыруының көмегімен үрдістерді клондау арқасында пайда болады.
Бинарлы ағаштар синтаксистік анализдің теориясы мен практикасында терминалды тізбекті шығаруды бейнелеуде де пайда бола алатынына кейінірек көзімізді жеткіземіз.
Бинарлы ағаштың қолданылуының мысалдарын тақырыпта айтылған бөлім үшін де көрсетуге болады.
Мұнда бинарлы ағаштар мысалы, іздеу алгоритмдері мен массивтерді сұрыптау алгоритмдері үшін салыстыру сандарын төменгі бағалауды дәлелдеуде қолданылады.
Бинарлы ағаштардың машиналық графикада. Мысалы жазықтықта іздеу есебін шешу үшін және бақылау нүктесінің орнын ауыстыру кезінде статикалық сахнаның үшбұрыштарының көрінісінің реттілігін анықтау есебін шешу үшін қолданылатынын атап кетейік. Бірінші есепке неғұрлым күрделі, сонымен қатар практикалық мысал ретінде көпке белгілі географиялық картаны қажетті масштабпен квадраттарға бөлу есебін және ол квадраттардың ішіндегі объектілерді анықтау, мысалы, мұндай карта ретінде қаланың географиялық картасын, ал квадраттар ішіндегі объектілер ретінде үйлерді, көшелерді алуға болады. Жедел жәрдем, плиция, құтқару қызметі және т.б. сияқты қала қызметкерлері үшін іздеу есебін тез шешудің маңыздылығын еске салу артық болар.
Екінші есептің шешімінің күрделілігі әр түрлі кеңістіктегі және жазықтағы бейнелердің тізбегін генерациялауда маңызды. Бірінші жағдайда есеп N жиындар нүктесі арқылы әр қилы өтетін көлденең және тік түзулерімен жазықтықты рекурсиялы бөлумен ассоцияланатын 2-d ағашты құру есебіне әкеледі.
2-d
ағашты құру кезінде ағаштың түбіріне
тік түзу, ал оның тікелей ұрпақтарына
осы төбелер арқылы өтетін көлденең
түзулер сәйкес келеді. Төбелердің
тікелей ұрпақтарын келесі деңгейге
орналастырады және оларға тағы осы
төбелер арқылы өтетін тік түзулер
сәйкестендіріледі. Бекітілген x төбесі
арқылы өтетін кез келген
түзуі қалған массивті екі бөлікке: х
төбесінен шыққан
- сол жақ бұтаққа тиесілі төбелер және
х төбесінен шыққан
- оң жақ бұтаққа тиесілі төбелер.
Айтылған
есептерді бейнелеу үшін келесі алынған
мысалдармен шектелейік. Ағаштарды
құру алгоритмдерін түсіну үшін осы
мысалдарды қарастыру жеткілікті болады
деп есептейміз. Бірінші мысал ретінде
массиві негізінде салынған 2_d
ағашты алайық,
нүктелерінің жазықтықтағы орналасуы
тұрақты болып саналады.
