Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Структура УМКД.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
252 Кб
Скачать
☆

Тізімдермен жүргізілетін операциялар

Тізімді қалыптастыру. Бұл жағдайда тізімге элементті қосу аяғынан басталады немесе аяғында жүргізіледі.

  1. Байланған тізімнен өту.

  2. Тізімді тазалау.

  3. Элементті енгізу схемасы.

Реттелген тізімді жасау

Көптеген қосымшаларда мәліметтердің реттелген тізімін қолдану қажет болады. Оның элементтері өспелі немесе кемімелі ретте орналасқан болуы тиіс. Жаңа элементтің дұрыс орнын анықтау үшін қыстыып қою алгоритмі тізімді сканерлеп өтеді. Одан кейін барып қою жүзеге асады. Мысалы: 60,65,74,82 тізімі берілген.

1 . head Null

осы тізімге 50,70,90 сандарын қою керек.

  1. 50 санын тізімге енгіземіз.

h ead Null

Тізімдегі бірінші элемент – 60. Оның мәні 50-ден үлкен, сондықтан жаңа элемент тізімнің басына қойылады.

  1. 70 санын тізімге енгізу керек. Мұнда 74 саны 70-тен үлкен тізімдегі бірінші элемент. Сондықтан қыстырып қою мына брйынша жүзеге асырылады:

h ead

Null

  1. 90 санын тізімге енгіземіз. Тағы барлық тізім тексеріледі. Онда элементтің ішінде мәні 90-нан кіші элемент жоқ. Сондықтан 90 тізімнің ең соңына қоыслады.

h ead Null Null

Дәріс 8.

Циклдық тізімдер. Стектер.

Мақсаты: Стектер ұғымы енгізу. Стектердің амалдарын, қолданылу аймақтарын беру.

Циклдық тізімдер ұғымын енгізу. Олармен жүргізілетін амалдармен танысу.

Осы уақытқа дейін біз тізімнің соңғы элементін көрсеткіш мәнін 0 деген сызықтық тізімді қарастырдық. Егер тізімнің соңғы элементінің көрсеткіш мәні тізімнің басының адресіне ауыстыратын болсақ, циклдық тізім аламыз. Көптеген кәсіби програмистер байланған тізімдерді жүзеге асыру үшін келесі циклдік модельді қолданады:

h ead

Циклдық тізімнің бір жетістігі бұл элементтерге кез келген жерде элементтерге кіруге болатындығында. Ал кемшілігі тізіммен жүрген кезде байқамаса ақырсыз циклге кіріп кетуге болады. Циклдық тізім сызықтық тізімге қарағанда құрылымы неғұрлым иілгіш болып келеді. Ол тізімде жүруді кез келген жағдайда бастауға мүмкіндік береді және оны бастапқы позицияға дейін жалғастыруға болады.

Екі байланысты сызықтық тізім

Кейбір есептерде тізім бойымен екі бағытты қозғалыс жасау керек болады. Бұл дегеніміз – тізімнің әрбір эелементіне бір өрістің орнына екі байланыс өрісін енгізгенде мүмкін болады. Бұл өрістерде жаңағы элемент алдыңғы және артқы элементтердің адрестері болады.

Сызықтық тізім екі байланысы бар немесе екі байланысты сызықтық тізім деп аталады. Егер бұл тізімнің әрбір элементі екі көрсеткішіне ие болса, яғни алдыңғы және артқы элементке арналған көрсеткіштер. Екі байланысты тізімді графиктік түрде былай көрсетуге болады.

b eg

2 байланысты тізімнен элементті алып тастау схемасы:

rex

Стектер

Стек дегеніміз ұзындық айнымалысының тізбектелген тізімі. Ондағы элементтерді алып тастау немесе қосу тек қана бір жағынан жүргізіледі. Стектерді кейде магазиндер деп те атайды. Стектерді белгілеу үшін көбінесе LIFO деген абревидуоа қолданылады. LIFO – Last in /first out (соңғы кіргенде бірінші шығады). Стектер тізімнің төбесінде кіруге болатын элементтерді сақтау үшін қолданылады. Стектің құрылымы полкадағы (сөредегі) кітаптар жиынына ұқсас болады. Мысалға: мұнда ең жоғарғы затты алуға болады немесе жаңа затты ең үстіне қосуға болады. Стек құрылымында элементтерді қосу және алып тастау операциялары маңызды орын алады.

P ush операциясы стектің төбесіне немесе ең жоғарғы жағына элемент қосады. Ал Pop операциясы элементті өшіреді. Сонда мына құрылымдарды сызамыз:

pushA pushB pushC Pop Pop PopD

Стектер екі әдіспен жүзеге асуы мүмкін:

  1. массив негізінде

  2. көрсеткіштер көмегімен

Стекті бір өлшемді массив негізінде жүзеге асыруды – стек өлшемі массивті максимальды элементтер санымен шектестіреді. Ал стекті көрсетулер көмегімен жүзеге асыруды – стек мөлшері - бос жадының кіруге болатын көмегімен шектеледі.

Стек құрылымын келесі графиктік түрде беруге болады:

Стек төбесі