русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Очередь


Дата добавления: 2013-12-23; просмотров: 1985; Нарушение авторских прав


Стек.

Запись студентов

Запись, записи с вариантами.

Массив.

Статические и полустатические структуры данных

Понятие «структура» входит в программу не только на уровне общего ее построения, но и предусматривает структурирование самой логики и оперируемых данных. Прежде всего, данный принцип нашел свое применение в типизации языка Паскаль, т.е. наделении его строгой системой предопределенных типов, комбинируя которые программист мог создавать свои собственные типы, причем уже не только простые, но и представляющие собой сложные конструкции – структуры данных.

Моделирование приводило к абстракции, т.е. к упрощенному (или обобщенному) представлению объектов, их свойств и отношений в зависимости от поставленной задачи.

Некоторые такие абстрактные объекты из-за своих полезных качеств стали необычайно «популярны». Они получили точную спецификацию и с тех пор стали называться абстрактными типами данных (или АТД).

Т.е. абстрагирование от многих несущественных факторов, в том числе и от того, как этот абстрактный объект представить в ЭВМ.

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

К АТД относятся: массив, запись, записи с вариантами, стек, очередь, дек, отображение

Массив– это одно- или многомерная таблица данных одного типа. В одномерном случае каждая ячейка таблицы имеет свой индекс. В многомерном набор индексов рис. 1.

 



В11 В12 В1n
В21 В22 В2n
В31 В23 В3n
В41 В24 В4n


Рис. 1 – Структура массива

 



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

Количество элементов массива, определяется количеством индексов и диапазоном их изменения.

Для доступа к элементу двумерного массива необходимо значения пары индексов (номер строки и номер столбца, на пересечении которых находится элемент). На физическом уровне двумерный массив выглядит так же, как и одномерный (вектор), причем трансляторы представляют массивы либо в виде строк, либо в виде столбцов

 



Запись – связанная структура, состоящая из нескольких элементов (полей) разных (можно и одинаковых) типов.

Запись очень похожа на одномерный массив, но с элементами разных типов, кроме того, доступ к конкретному полю записи осуществляется уже не через индекс, а указанием идентификатора (т.е. имени) этого поля.

Например:

Петров С. П КТАС 07-К-ПО1

Эту запись можно представить в логическом и графическом виде рис. 2, рис.3

 



номер фамилия факультет группа

 

Рис. 2 - Логическая структура

 



 




 



 



рис. 3 – графическая структура

 



Элемент записи может включать в себя записи. В этом случае возникает сложная иерархическая структура данных

Операции над записями:

1. Прочтение содержимого поля записи.

2. Занесение информации в поле записи.

Все операции, которые разрешаются над полем записи, соответствующего типа

Стек –структура данных, представляющая собой последовательность элементов. Добавление и удаление элементов происходит только с одного конца последовательности, т.е. при изменении структуры предыдущая последовательность остается неизменной.

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

Графически стек можно представить следующим обра­зом:

 



EN Вершина стека
 
 
E2  
E1 Нижняя граница стека

 

Рис. 4 – Графическое изображение стека

 



Первый элемент заносится вниз стека. Выборка из стека осуществляется с вершины, поэтому стек является структурой с ограниченным доступом.

АТД «стек» использует следующие пять операторов:

1. MAKENUL – делает стек пустым.

2. TOP – возвращает копию элемента из стековой вершины.

3. POP – достаёт элемент из вершины стека. Иногда реализует возвращение удаляемого элемента.

4. PUSH – помещает элемент в стек, делая его вершиной, а предыдущую вершину вторым элементом.

5. Stacktop(S) -Прочтение элемента без его выборки из стека.

- Реализация стека посредством массива.В низу массива зафиксиhetz дно стека max и стек «растет» вверх по массиву к ячейки с наименьшим индексом. На вершину стека будет указывать курсор с именем top, который определяет текущее положение первого элемента стека. Данное представление стека показано на рисунке 5.

 
 

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

 
 

Оператор PUSH добавляет элемент лишь в вершину стека. Добавление элемента происходит следующим образом: создаётся новая ячейка, в поле next записывается указатель на прошлую вершину стека, а указатель на новую ячейку становится новым указателем на вершину стека (рис.6).

рис. переделать.

 



 

Понятие очереди всем хорошо известно из повседневной жизни. Элементами очереди в общем случае являются заказы на то или иное обслуживание

Очередь – это структура данных, представляющая собой последовательность элементов.


Добавление элементов происходит с одной стороны последовательности, удаление – с другой. Рис. 7.

 



 



Рис. 7 – Графическое изображение очереди

 



Заказ поступает в очередь первым, выбирается первым для обработка (и удаляется из очереди тоже первым) называется FIFO (первым пришел, первым ушел). Такая очередь открыта с обеих сторон.

Для работы с очередями используются следующие операторы:

1. MAKENUL– делает очередь пустой.

2. FRONT– возвращает копию элемента из начала очереди.

3. ENQUEUE – эта процедура вставляет новый элемент в конец очереди.

4. DEQUEUE– осуществляет удаление первого элемента из очереди.

5. EMPTY – возвращает значение true, если очередь пуста, и значение false, если в ней есть элементы

Реализация очередей с помощью циклических массивов.Во время представления очередей с помощью массивов (рис.8) возникает трудность, связанная с определением пустоты очереди, так как по взаимному расположению указателей конца и начала не возможно определить, когда очередь пуста, а когда заполнила весь массив.

 
 

Реализация очередей с помощью указателей.Так же как и «стек», «очередь» является специальным типом списка и, имея похожую структуру, обладает рядом отличий при добавлении рис. 9 и удалении элементов рис. 10

 
 

 



Вставка элемента осуществляется оператором enqueue((по)ставить в очередь) осуществляется добавление элемента следующим образом: создаётся новая ячейка, и указать на неё записывается вместо nil в поле next конечного элемента очереди, т.е. указатель P4 был записан вместо nil в поле next ячейки, на которую указывает указатель P3 (рис. 9а, 9б)

Dequeue (выводить [исключать] из очереди), удаляя первый элемент из очереди, отсоединяет от очереди прежнее начало, в результате чего новая ячейка становится первым элементом списка. Указатель на начало очереди P0 присваивается новое значение – P2, что исключило из очереди прежнее начало, т.е. элемент a с указателем на него P1.(рис. 10а, 10б)

 
 



<== предыдущая лекция | следующая лекция ==>
Концепция типа данных, простейшие типы данных, стандартные типы данных, органические типы (диапазоны) | Динамические структуры данных


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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