



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
Labarotory of algoritmic acts
Typology: Lab Reports
1 / 6
This page cannot be seen from the preview
Don't miss anything!
ЛАБОРАТОРНАЯ РАБОТА № 5. ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ. Под динамической структурой данных понимается любая структура данных, занимаемый объем памяти которой не является фиксированным. Иными словами, в подобной структуре может храниться как два, пять, двадцать элементов, так и одно большое ничего. Размер подобной структуры ограничен только объемом оперативной памяти компьютера. Существует несколько разновидностей динамических структур: список, дерево. Прежде чем переходить к описанию структур, следует запомнить несколько простых определений: Потомок — элемент структуры, идущий после текущего. В зависимости от вида динамической структуры у элемента может быть более одного потомка. Предок — элемент структуры, идущий до текущего. Головной элемент (Head)Head)) — первый элемент списка. Хвостовой элемент (Head)Tail)) — последний элемент списка. Структура данных Список Список — это линейная динамическая структура данных, у каждого элемента может быть только один предок и только один потомок. По сути своей это очень похоже на обыкновенный массив, с той лишь разницей, что размер его не имеет ограничений. Списки также подразделяются на несколько типов. Односвязный список — элемент имеет указатель только на своего потомка. Односвязный список Двусвязный список — элемент имеет указатели и на потомка, и на родителя.
Двусвязный список Замкнутый (Head)кольцевой, циклический) список — головной и хвостовой элементы которого указывают друг на друга. Замкнутый список На базе простого однонаправленного списка могут быть построены такие структуры данных, как очередь (queue) и стек (stack).queue) и стек (queue) и стек (stack).stack).). Очередь есть ничто иное, как список, операции чтения и добавления элементов в котором подвержены определенным правилам. При этом, при чтении элемента, он удаляется из очереди. Все операции проводятся по принципу «Первый пришел, первый вышел» (queue) и стек (stack).FIFO — first in, first out). Таким образом, для чтения в очереди доступна только голова, в то время как добавление проводится только в хвост. Стек во многом похож на очередь, с той лишь разницей, что извлечение и добавление элементов в нем происходит по правилу «Последний пришел, первый вышел» (queue) и стек (stack).LIFO — last in, first out). Добавление и извлечение элементов проводится от головы. По принципу похоже на работу обоймы огнестрельного оружия. Двусвязный список на языке C++ Рассмотрим пример реализации простейшего двусвязного списка. Этот и последующие примеры кода будут приведены на языке c++. В примере реализованы операции добавления нового элемента в список и вывод элементов. Элемент списка struct Node { float data; // Данные.
Tail->Next = temp; Tail = temp; } else { temp->Prev = NULL; Head=Tail=temp; } } // Вывод всех элементов списка void List::Show(queue) и стек (stack).) { Node *temp = Head; while(queue) и стек (stack).temp!=NULL) // Просматриваем весь список. { Form1->Memo2->Lines->Add(queue) и стек (stack).FloatToStr(queue) и стек (stack).temp->data)); temp = temp->Next; } } ИНДИВИДУАЛЬНЫЕ ЗАДАНИЯ