- •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.Қос хештеу.
24.Экстремальды қасиет/і бар бинарлы ағаштың арнайы ішкі класс/ы.
Ағашты ұсынудың ең қарапайым түрі әдеттегі құрылымды массив.
Х1 |
Х2 |
Х3 |
Х4 |
Х5 |
Х6 |
Х7 |
Х8 |
Х9 |
Х10 |
Алғашқы таңдалған ағаш не толық түрде, не толықтау сол жақ ағаш болуы мүмкін. Бұл ағаштың биіктігі log2n және оны массив түріне ұсыну жинақы болады. Екінші ағаштың биіктігі n жіне ол келесі түрдегі ағашты ұсынудың бұл түрінің қарама қарсы қасиеттерін көрсетеді.
Х1 |
Х2 |
- |
Х3 |
- |
- |
- |
Х4 |
- |
- |
- |
- |
- |
- |
- |
Х5 |
Мұнда жады қажеттісінен көп артық талап етіледі.
Ағаштарды ұсынуда ағаштың табиғи құрылымы бейнеленетін тәсілі тіркелген ұяшықтар тізімі. Бұл кезде ағашта іздеу тек бір бұтақ бойымен ғана жүргізіледі. Ағашты бұл түрде ұсынуда әрбір ұяшық ағаш төбесіне сәйкес келеді және оң жақ тікелей ұрпақтарына сілтеме жасалады. Егер төбенің тікелей ұрпақтарыне сілтеме жасалады. Егер төбенің тікелей тегіне ұрпақтары жоқ болса, бұл арнайы сілтеме немесе маркермен кодталады. Ұяшық қосымша түрде осы төбенің тікелей тегіне де сілтеме көрсеткіш бола алады.
Бинарлы ағаш сияқты объектілерді зерттеу барысында, алғашқы қадамда бұл объектілердің айрықша ерекшеліктерін анықтауға тырысады, оның ішінде зерттелетін мәселелердің негізгі тізімімен байланыстыларын тізім бойынша қазірге екі тапсырма бар: іздеу тапсырмасы, сұрыптау тапсырмасы. Осыған орай бұл контексте бізді қызықтыратын сұрақтар шегін анық қоя аламыз.
Бинарлы ағаш тұрғызуалгоритмі және олардың арнайы ерекшеліктері
Ақырғы жағдайлар, яғни жаман және жақсы жағдай, бұлар массивті ұсыну тәсілінің негативті және позитивті жақтарын көрсетеді.
Экстремалды қасиеттері бар бинарлы ағаштың ішкі класстары
Бинарлы ағаштың негізгі ішкі кластарын ідеу және тұрғыудағы қиындықтарды бағалау, яғни сәйкес алгоритмдер қиындығы
Бинарлы ағаштармен жасалатын стандартты операциялар.
25.Бинарлы ағаштар қолданыстары және жалпылаулары.
Бинарлы ағаш тәрізді құрылыс/конструкция/ практикалық жүйелерде қолданылғанымен, бинарлы ағаштардың Computer science аймағының өзінің ішінде қолданылуының көбірек маңызы бар. Бинарлы ағаштың қолданылуының бір түрімен оның айналымдарын анықтау кезінде таныстық, онда бинарлы ағаш арифметикалық өрнектерді көрсету үшін қолданылады.
Бинарлы ағаштың қолданылуының классикалық және анағұрлым көбірек айтылатын түріне минималды артықшылықтың Хаффман-код аталатын кодын құру үшін қолданылатын бинарлы ағаш жатады. Керісінше “Мәліметтер құрылымы” кітаптарында бинарлы ағаштың дискретті оптимизация алгоритімдерінде қолданылуы тәрізді оның маңызды қолданысы туралы айтылмайды, мысалы, бұтақтар ме шекара әдісі тәрізді алгоритмдерде. Бұтақтар мен шекара әдісінің алгоритмінің негізгі мақсаты шешімдер ағашын құру екенін еске салайық. Ол ағашты құру кезінде дискретті экстремальді есептің оптималды шешімі табылады. Коммивояжер есебі жағдайында есеп шешімін, яғни коммивояжердің ең қысқа маршрутын осылай табады. Бинарлы ағаштардың шектелген – детерминдалған функцияларды беруде қолданылу мысалдары белгілі, мұндай функциялар туралы ғылымда бұл ағаштар арнайы атөа ие болады – нөмірленген ағаштар. Бинарлы ағаштар UNIX – та үрдістерді басқару жүйелерінде де fork жүйелік шақыруының көмегімен үрдістерді клондау арқасында пайда болады.
Бинарлы ағаштар синтаксистік анализдің теориясы мен практикасында терминалды тізбекті шығаруды бейнелеуде де пайда бола алатынына кейінірек көзімізді жеткіземіз.
Бинарлы ағаштың қолданылуының мысалдарын тақырыпта айтылған бөлім үшін де көрсетуге болады.
Мұнда бинарлы ағаштар мысалы, іздеу алгоритмдері мен массивтерді сұрыптау алгоритмдері үшін салыстыру сандарын төменгі бағалауды дәлелдеуде қолданылады.
Бинарлы ағаштардың машиналық графикада. Мысалы жазықтықта іздеу есебін шешу үшін және бақылау нүктесінің орнын ауыстыру кезінде статикалық сахнаның үшбұрыштарының көрінісінің реттілігін анықтау есебін шешу үшін қолданылатынын атап кетейік. Бірінші есепке неғұрлым күрделі, сонымен қатар практикалық мысал ретінде көпке белгілі географиялық картаны қажетті масштабпен квадраттарға бөлу есебін және ол квадраттардың ішіндегі объектілерді анықтау, мысалы, мұндай карта ретінде қаланың географиялық картасын, ал квадраттар ішіндегі объектілер ретінде үйлерді, көшелерді алуға болады. Жедел жәрдем, плиция, құтқару қызметі және т.б. сияқты қала қызметкерлері үшін іздеу есебін тез шешудің маңыздылығын еске салу артық болар.
Екінші есептің шешімінің күрделілігі әр түрлі кеңістіктегі және жазықтағы бейнелердің тізбегін генерациялауда маңызды. Бірінші жағдайда есеп N жиындар нүктесі арқылы әр қилы өтетін көлденең және тік түзулерімен жазықтықты рекурсиялы бөлумен ассоцияланатын 2-d ағашты құру есебіне әкеледі.
2-d ағашты құру кезінде ағаштың түбіріне тік түзу, ал оның тікелей ұрпақтарына осы төбелер арқылы өтетін көлденең түзулер сәйкес келеді. Төбелердің тікелей ұрпақтарын келесі деңгейге орналастырады және оларға тағы осы төбелер арқылы өтетін тік түзулер сәйкестендіріледі. Бекітілген x төбесі арқылы өтетін кез келген түзуі қалған массивті екі бөлікке: х төбесінен шыққан - сол жақ бұтаққа тиесілі төбелер және х төбесінен шыққан - оң жақ бұтаққа тиесілі төбелер.
Айтылған есептерді бейнелеу үшін келесі алынған мысалдармен шектелейік. Ағаштарды құру алгоритмдерін түсіну үшін осы мысалдарды қарастыру жеткілікті болады деп есептейміз. Бірінші мысал ретінде массиві негізінде салынған 2_d ағашты алайық, нүктелерінің жазықтықтағы орналасуы тұрақты болып саналады.
Жалпылаулар. Жалпы құрылым болып табылатын әдеттегі ағаш және граф түсініктері программа сияқты динамикалық объектінің қасиеттерін сипаттауда және зерттеуде ыңғайлы және жеткілікті емес. Осы мақсаттарға анықтаулар жасау қажет болады. Осыған байланысты XX ғ. 50 – жылдардың соңында, 60 – жылдардың басында Ляпунова А.А., Янова Ю.И., Калужина Л.А., Лаврова С.С., Ершова А.П., Мартынюка В. жұмыстарының арқасында теоретикалық программалауың негізін қалаған фундаменталды түсінік – операторлық схема түсінігі пайда болды. Осы теория негізінде программаларды тиімділеу, жадыны экономдау, программаны параллель орындау мүмкіндігі және т.б. есептердің тізбегін зерттеуге болады. Марынюк схемасы деп аталатын програманың басқарушы графымен берілетін операторлық схемаға мысал келтірейік.
1.1 сурет
