Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Реєстрація постояльців в готелі

Реферат Реєстрація постояльців в готелі





ку */

{address * old, * p;=* start;

if (! * last) {/ * перший елемент у списку */

i- gt; next=NULL;

* last=i;

* start=i ;;

}=NULL; (p) {(strcmp (p- gt; name, i- gt; name) lt; 0) {= p;=p- gt; next;

} {(old) {/ * вставка в середину */

old- gt; next=i; gt; next=p;

return;

} gt; next=p;/* Вставка в початок */

* start=i ;;

}

}

(* last) - gt; next=i;/* Вставка в кінець */ gt; next=NULL;

* last=i;

}


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


void display (struct address * start)

{(start) {(% s n raquo ;, start- gt; name);

start=start- gt; next;

}

}


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

Для отримання елемента зі списку потрібно просто пройти по ланцюжку посилань. Нижче наведено приклад функції пошуку по вмісту поля name:


struct address * search (struct address * start, char * n)

{(start) {(! strcmp (n, start- gt; name)) return start;=start- gt; next;

} NULL;/* Підходящий елемент не знайдений */

}


Оскільки функція search () повертає покажчик на елемент списку, що містить шукане ім'я, повертається тип описаний як покажчик на структуру address. При відсутності в списку підходящих елементів повертається нуль (NULL).

Видалення елемента з одинзв'язного списку виконується просто. Так само, як і при вставці, можливі три випадки: видалення першого елемента, видалення елемента в середині, видалення останнього елемента. На рис.4 показані всі три операції.



Нижче приведена функція, що видаляє заданий елемент зі списку структур address.


void sldelete (address * p,/* попередній елемент */address * i,/* видаляється елемент */address ** start,/* початок списку */address ** last)/* кінець списку */

{(p) p- gt; next=i- gt; next; * start=i- gt; next; (i == * last amp; amp; p) * last=p;

}


Функції sldelete () необхідно передавати покажчики на видаляється елемент, що передує удаляемому, а також на перший і останній елементи. При видаленні першого елемента покажчик на попередній елемент повинен бути рівний нулю (NULL). Ця функція автоматично оновлює покажчики start і last, якщо один з них посилається на видаляється елемент.

У однозв'язних списків є один великий недолік: однозв'язний список неможливо прочитати у зворотному напрямку. З цієї причини зазвичай застосовуються двусвязний списки.

4. Опис програми


Програма складається з декількох файлів вихідних текстів програм.

Всі функції описані в хедер файлах. Їх призначення:

Parserlib. h - функції-парсери для перевірки валідності даних;

Registration. h - Робота з одинзв'язного списком,

функціональність: реєстрація вселення/виселення постояльця

hastable. h - Робота з хеш-таблицею

функціональність: робота з інформацією про постояльців

avl. h - робота з АВЛ-деревом

функціональність: робота з готельними номерами

Програма володіє простим, інтуїтивним інтерфейсом, що не вимагає спеціального курсу навчання.


Вихідні тексти програми:

Avl. h

/***************************************** *****

робота з АВЛ-деревом

функціональність: робота з готельними номерами

****************************************** *****/


Назад | сторінка 9 з 19 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Технологія розгортання додатків Java Web Start
  • Реферат на тему: Розробка програми, що реалізує алгоритм двусвязного списку
  • Реферат на тему: Розробка програми для зберігання і виведення списку співробітників і їхні з ...
  • Реферат на тему: Реалізація концепції контейнерів і ітераторів на прикладі односпрямованого ...
  • Реферат на тему: Пам'ятки природи, занесені до списку ЮНЕСКО