Помощь в написании студенческих работ
Антистрессовый сервис

Библиотека алгоритмов поиска в связанных списках

Курсовая Купить готовую Узнать стоимостьмоей работы

If (key == ptr→number). If (head→next == NULL). Tail = ptrDelete→last; Node* ptrDelete = NULL; If (ptr→next == NULL). Head = ptrDelete→next; Заключение. System («PAUSE»); System («PAUSE»); System («PAUSE»); System («PAUSE»); System («PAUSE»); Tail→next = NULL; If (tail == NULL). If (head == NULL). Head→last = NULL; System («CLS»); System («CLS»); System («CLS»); System («CLS»); System… Читать ещё >

Библиотека алгоритмов поиска в связанных списках (реферат, курсовая, диплом, контрольная)

Содержание

  • 1. Понятие о связанных списках
  • 2. Классификация связанных списков
  • 3. Основные операции со связанными списками, необходимые для их обработки
  • 4. Алгоритмы поиска в связанных списках
    • 4. 1. Алгоритм поиска в линейном односвязном списке и его реализация в среде С++
    • 4. 2. Алгоритм поиска в линейном двухсвязном списке и его реализация в среде С++
  • Заключение Используемая
  • литература

!! СПИСОК ПУСТ!!! nn");

/* ожидание нажатия клавиши */

system («PAUSE»);

/* очистка экрана */

system («CLS»);

continue;

}

if (head->next == NULL)

{

/* сброс указателей хвоста и головы*/

head = NULL;

tail = NULL;

delete head;

continue;

}

/* удаление элемента списка*/

ptrDelete = head;

head = ptrDelete->next;

head->last = NULL;

delete ptrDelete;

continue;

}

if (action == 5)

{

/* очистка экрана */

system («CLS»);

Node* ptrDelete = NULL;

if (tail == NULL)

{

adapt («t!!! СПИСОК ПУСТ!!! nn»);

/* ожидание нажатия клавиши */

system («PAUSE»);

/* очистка экрана */

system («CLS»);

continue;

}

if (tail->last == NULL)

{

head = NULL;

/* очистка экрана */

tail = NULL;

delete tail;

continue;

}

ptrDelete = tail;

tail = ptrDelete->last;

tail->next = NULL;

ptrLast = tail;

delete ptrDelete;

continue;

}

if (action == 6)

{

/* очистка экрана */

system («CLS»);

Node* ptr = NULL;

int key = -1;

if (head == NULL)

{

adapt («t ====== В списке нет не одного элементаnn»);

/* очистка экрана */

/* ожидание нажатия клавиши */

system («PAUSE»);

system («CLS»);

continue;

}

adapt («Введите информационную часть узла: «);

cin>>key;

ptr = head;

while (1)

{

if (key == ptr->number)

{

adapt («nt Узел существует n»);

break;

}

if (ptr->next == NULL)

{

adapt («nt Узел не существуетn»);

break;

}

/* переход к следующему элементу*/

ptr = ptr->next;

}

system («PAUSE»);

/* очистка экрана */

system («CLS»);

continue;

}

if (action > 6)

{ /*действия в случае неправильного выбора*/

/* очистка экрана */

system («CLS»);

adapt («t!!! НЕВЕРНЫЙ ВЫБОР. ПОВТОРИТЕ ВВОД!!! nn»);

/* ожидание нажатия клавиши */

system («PAUSE»);

/* очистка экрана */

system («CLS»);

continue;

}

}

}

/* адаптация русского языка*/

void adapt (const char* textstroka)

{

char word[100];

CharToOem (textstroka, word);

cout<

}

Работоспособность программы демонстрируют экранные формы, представленные на рис.

11−14.

Рис. 11 Главное меню программы

Рис. 11 Обычный просмотр списка Рис. 12 Просмотр списка, начиная с хвоста Рис. 13 Выбор узла для поиска Рис. 14 Результат выполнения поиска

Заключение

В ходе выполнения курсовой работы были разработаны алгоритмы поиска элементов односвязного и двусвязного списков, которые позволяют эффективно решать задачи информационного поиска в динамических структурах данных, которыми и являются рассмотренные списки.

Разработанные алгоритмы были реализованы в среде Borland C++, в качестве консольного приложения. В работе так же был разработан ряд функций, позволяющих обеспечить работу с односвязными и двусвязными списками, такие как добавление элемента списка, удаление элемента списка, просмотр элементов списка и вывод их на печать, а так же некоторыми другими.

Работоспособность разработанных программ подтверждается отсутствием ошибок компиляции, результатами тестирования, а так же приведенными экранными формами, которые в свою очередь демонстрируют результаты функционирования.

Используемая литература

Дискретная математика для программистов / Ф. А. Новиков — СПб: Питер. 2О00. — 304 с.

Вылиток А.А., Матвеева Т. К. Динамические структуры данных. Задание практикума. — М.: Издательский отдел Факультета ВМиК МГУ им. М. В. Ломоносова, 2004. — 44с.

Поляков К. Программирование на языке С. Москва, 2009.

Каррано Ф.М., Причард Дж.Дж. Абстракция данных и решение задач на C++.: Пер. с англ. — М.: Издательский дом «Вильяме», 2003. — 848 с.

Показать весь текст

Список литературы

  1. Дискретная математика для программистов / Ф. А. Новиков — СПб: Питер. 2О00. — 304 с.
  2. А.А., Матвеева Т. К. Динамические структуры данных. Задание практикума. — М.: Издательский отдел Факультета ВМиК МГУ им. М. В. Ломоносова, 2004. — 44с.
  3. К. Программирование на языке С. Москва, 2009.
  4. Ф.М., Причард Дж.Дж. Абстракция данных и решение задач на C++.: Пер. с англ. — М.: Издательский дом «Вильяме», 2003. — 848 с.
Заполнить форму текущей работой
Купить готовую работу

ИЛИ