Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Программа для организации очереди




Для работы с динамическими структурами

Дерево может формироваться из динамических элементов с двумя указателями.

Дерево состоит из элементов, которые называются узлами или вершинами.

Дерево

Двунаправленный список формируется из динамических элементов с двумя указателями.

Двунаправленный список

Список

Стек

Указатель у последнего элемента в очереди хранит нулевое значение.

Очередь

Из динамических элементов формируется цепочка. Динамический элемент хранит адрес следующего динамического элемента.

 

Существует 5 основных видов динамических структур:

· очередь

· стек

· список

· двунаправленный список

· дерево

Очередь работает по тому же принципу, что и очередь в магазине: "первым пришел, первым ушел". Элементы добавляются в конец очереди, а берутся из начала. Для работы необходимо знать начало и конец очереди.

 

Стек работает по принципу " первым пришел, последним ушел ". Элементы добавляются и берутся с одного конца, который называется вершина стека.

 

 

Порядок работы с элементами списка не определен. Можно, например, вставить или убрать элемент из любой части списка.

 

 

Может использоваться кольцевой список, в котором соединены начало и конец.

 

 

 

 

 

 

Может использоваться кольцевой список, в котором начало и конец соединены.

 

Узлы соединены направленными дугами X->Y (от Х к Y). X называется предшественником (родителем) Y. Y - называется потомком.

Дерево имеет одну вершину, которая не имеет предшественников. Она называется корнем дерева. Вершины, которые не имеют потомков, называются листьями.

 

Примеры программ (фрагментов программ)

Задача. Создание очереди из произвольного количества целых положительных чисел. Признак окончания ввода - отрицательное число.

#include < iostream.h> #include < conio.h> /* Описание структурного элемента, info - информационное поле, next -указатель на следующий элемент. */ struct ELEM{int info;ELEM *next;}; void main(){// Указатели на элементы очереди: первый, последний, текущий, старый, новыйELEM *nach, *tek, *old, *kon, *new_n; int i=1; nach=0;kon=0;cout << "\n Введите произвольное кол-во целых чисел";cout << "\n признак окончания ввода - отрицательное число"; // Создается очередь из целых чисел do { // Ввод числа cout << "\n Введите целое число"; cin >> i; if (i<=0) break; // Прекращение цикла // Создание очередного элемента new_n=new ELEM; /* Выделяется память под новый элемент, адрес выделенной памяти записывается в new_n */ new_n-> info=i; /* Присваивается значение информационному полю нового элемента*/ new_n-> next=0; /* Присваивается значение указателю нового элемента */ if (nach) { // Если очередь не пуста, очередной элемент добавляется в конец очереди kon-> next=new_n; kon=new_n; } else { /* Если очередь пуста, начало и конец очереди будут указывать на один и тот же элемент */ nach=new_n; kon=new_n; } }while (i> 0); // Пример обработки элементов// Элементы отображаются на экране и удаляются из очереди while (nach) { old=nach; cout << "\n элемент "<< nach-> info; // Выводим элемент на экран nach=nach-> next; // Переходим к следующему элементу очереди delete old; // Очищаем память, которую занимал первый элемент } getch();}



Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 365; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.