Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_СиОД_метЗап.doc
Скачиваний:
1
Добавлен:
08.08.2019
Размер:
238.59 Кб
Скачать

2. Привести постановку задачі відповідно варіанту завдання. 3. Розробити алгоритми і проілюструвати їх структурограмами Насі- Шнейдермана основних

операцій з запропонованими структурами. 4. Реалізувати програмою та привести рукописні тексти відтворення цих операцій. 5. Розробити тести для перевірки працездатності програми,скласи план і привести в звіті відомості щодо відлагодження програми. 6. Подати результати роботи програми.

Варіанти завдань : Розробити програму реалізації динамічних структур даних та основних операцій над ними ( формування, додавання, вилучення, перегляд ) та їх інформаційними частинами – рядками ( формування, додавання, вилучення, пошук символа і т.і. ) : 1. Стек, черга та лінійний однозв’язанний список,елементами структур є рядки, розроблені користувачем як вектори з рахівником довжини; 2. Стек, черга та лінійний однозв’язанний кільцевий список,елементами структур є рядки, розроблені користувачем як вектори фіксованої довжини. 3, Стек, черга та лінійний двохзв’язанний список,елементами структур є рядки, розроблені користувачем як вектори з ознакою кінця-символ %; 4. Стек, черга та кільцевий двохзв’язанний список ,елементами структур є рядки, розроблені користувачем як вектори з рахівником довжини; 5. Стек, черга та лінійний двохзв’язний список,елементами структур є рядки, розроблені користувачем як вектори фіксованої довжини; 6. Стек, черга та лінійний однозв’язанний список ,елементами структур є рядки, розроблені користувачем як вектори з ознакою кінця-символом % ; 7. Стек, черга та лінійний однозв’язанний кільцевий список ,елементами структур є рядки, розроблені користувачем як вектори з рахівкиком довжини; 8. Стек, черга та лінійний двохзв’язанний список , елементами структур є рядки, розроблені користувачем як вектори фіксованої довжини; 9. Стек, черга та кільцевий двохзв’язанний список , елементами структур є рядки, розроблені користувачем як вектори з ознакою кінця – символом %. 10. Стек, черга та кільцевий однозв’язний список,елементами структур є рядки, розроблені користувачем як вектори фіксованої довжини;

Короткі теоретичні відомості.

1. Загальні відомості про динамічні структури даних. Динамічні структури даних-це такі структури, які утворюються не підчас опису структури і компіляції програми, а підчас роботи програми, коли виникає потреба створення екземплярів структури.

Динамічна структура характеризується наступними рисами: 1) змінність і непередбаченність розміру ( числа елементів ) структури в процесі її обробки; 2) відсутність фізичноі сміжності елементів структури в пам'яті ЕОМ; 3) логічна послідовність елементів забезпечується наявностю в елементах спеціальних засобів зв'язку між елементами за допомогою вказівників (додаткових полів, в яких записані адреси елемента або елементів, котрі зв'язані з поточним елементом) .

Часто динамічні структури фізично подаються у формі зв'язних списків, тому їх часто називають списковими структурами. Причому під списком тут розуміється зв'язний список. Зв'язні ДСД – це такі структури , елементами яких є записи з одним і тим же форматом, зв'яза-ні між собою за допомогою покажчиків, які зберігаються в самих елементах. Таким чином, в цих структурах кожен елемент складається в двох різних за призначенням полів: змістовного поля і поля покажчика. Слід зауважити, що змістовне поле в свою чергу може бути будь-якого типу, крім файлового. В змістовному полі зберігаються дані, задля чого і утворюється структу-ра. Поле покажчика зберігає адресу наступного елемента структури. Користуючись покажчиками, можно отримати доступ до наступного елемента, а із нього – до подальшого, а із нього – до слідуючого за ним чергового і так далі, поки не буде досягнутий останній елемент. Поле покаж-чика останнього елемента повинно мати спеціальну ознаку пустого або нульового покажчика, який нікуди не показує, тобто засвідчує про кінець структури.

2. Стек як зв'язний список.

Логічна структура динамічного стеку визначається анологічно напівстатичній структурі двома операціями додаванням до стеку і вилученням зі стеку, які відбуваються з одного боку, що називається вершиною стеку. Лінійність стеку забезпечеється лінійним впорядкуванням: для кожного елементу ( окрім першого і останнього ) є лиш один наступний і попередній елемент. Стек як зв'язний список схематично зображується наступним чином:

Top

Info N

Info n-1

Info 1

Ф ізична структура динамічного стеку , тобто інформаційний вектор відрізняється від напівстатичного природньо тільки описом елемента стеку наявністю покажчика.

Опис елемента стеку засобами мови С++: struct TStack { TInfo Info; TStack *Next ; } ; Доступ до елементів стеку: Tstack *Top, *T; T=new ( TStack); T-> info = in; T->Next = NU LL: Top=T: // Побудовано стек з одного елемента. Додавання до стеку: T=new ( Tstack); T-> info = in_n+1; T-> Next = Top; Top = T; Вилучення зі стеку: T = Top; Top = Top-> Next; delete T;

3. Черга як зв'язний список.

Beg

End

Логічна структура динамічної черги визначається анологічно напівстатичній структурі двома операціями: додаванням до кінця черги і вилученням з голови черги.Природньо, що на схемах черги окрім вказівника Beg на перший ( головний ) елемент буде зображений і вказівник End на останній ( хвістовий ) елемент.

Info 1

Info 2

Info N

Фізична структура динамічної черги , тобто інформаційний вектор ( як і стеку )відрізняється від напівстатичної природньо тільки описом елемента черги наявністю покажчиків на початок і кінець черги.

Опис елемента черги засобами мови С++: struct TQue { TInfo Info; TQue *Next ; } ; Побудова черги: TQue *Beg, *End; *T; T=new ( TQue); T-> info = in; T->Next = NU LL: Beg =T; End = T; // Побудовано чергу з одного елемента. Додавання до черги: T=new ( TQue); T-> info = in_n+1; T-> Next = NULL; End->Next = T: End = T; Вилучення з черги: T = Beg; Beg = Beg-> Next; delete T;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]