Автор: Пользователь скрыл имя, 06 Февраля 2011 в 12:57, курсовая работа
Целью любой информационной системы является обработка данных об объектах и явлениях реального мира и предоставление нужной человеку информации о них. Для достижения поставленной цели необходимо решить следующие задачи:
- дать общую характеристику данным;
- изучить различные структуры данных;
- проанализировать упорядочение структур данных;
- рассмотреть режимы обработки данных;
- решить практическую задачу с использованием средств MS Exsel
Введение……………………………………………………………………….3
Теоретическая часть «Основные структуры данных»……………………...4
Введение……………………………………………………………………….4
1. Общая характеристика данных……………………………………………4
2. Классификация структур данных…………………………………………5
3. Характеристика основных типовых структур……………………………7
Заключение…………………………………………………………………..15
Практическая часть………………………………………………………….17
1. Общая характеристика и задачи…………………………………………17
2. Описание алгоритма решения задачи……………………………………17
Список использованной литературы……………………………………….25
Добавление элемента, называемое также проталкиванием (push), возможно только в вершину стека (добавленный элемент становится первым сверху). Удаление элемента, называемое также выталкивание (pop), возможно также только из вершины стека, при этом, второй сверху элемент становится верхним (рис.2).
Рис.2
Простое представление стека
Стеки широко применяются в вычислительной технике — в частности, для отслеживания точек возврата из подпрограмм используется стек вызовов, который является неотъемлемой частью архитектуры большинства современных процессоров. Языки программирования высокого уровня также используют стек вызовов для передачи параметров при вызове процедур. Арифметические сопроцессоры, программируемые микрокалькуляторы и язык Forth используют стековую модель вычислений [6].
О́чередь — структура данных с дисциплиной доступа к элементам «первый пришёл — первый вышел» (FIFO, First In — First Out). Добавление элемента (принято обозначать словом enqueue — поставить в очередь) возможно лишь в конец очереди, выборка — только из начала очереди (что принято называть словом dequeue — убрать из очереди), при этом выбранный элемент из очереди удаляется (рис. 3).
Рис.
3 Реализация очереди на базе массива
Очередь в программировании используется, как и в реальной жизни, когда нужно совершить какие-то действия в порядке их поступления, выполнив их последовательно. Примером может служить организация событий в Windows. Когда пользователь оказывает какое-то действие на приложение, то в приложении не вызывается соответствующая процедура (ведь в этот момент приложение может совершать другие действия), а ему присылается сообщение, содержащее информацию о совершенном действии, это сообщение ставится в очередь, и только когда будут обработаны сообщения, пришедшие ранее, приложение выполнит необходимое действие [7].
Деком (англ. deque – аббревиатура от double-ended queue, двухсторонняя очередь) называется структура данных, в которую можно удалять и добавлять элементы как в начало, так и в конец. Дек хранится в памяти так же, как и очередь. Система команд дека:
Примером дека может быть некий терминал, в который вводятся команды, каждая из которых выполняется какое-то время. Если ввести следующую команду, не дождавшись, пока закончится выполнение предыдущей, то она встанет в очередь и начнет выполняться, как только освободится терминал. Это тоже FIFO очередь. Если же дополнительно ввести операцию отмены последней введенной команды, то получается дек [8].
Планета | Расстояние до Солнца, а.е. | Относительная масса | Количество спутников |
Меркурий | 0,39 | 0,056 | 0 |
Венера | 0,67 | 0,88 | 0 |
Земля | 1,0 | 1,0 | 1 |
Марс | 1,51 | 0,1 | 2 |
Юпитер | 5,2 | 318 | 16 |
Двои́чное де́рево — древовидная структура данных, в которой каждый узел имеет не более двух потомков (детей). Как правило, первый называется родительским узлом, а дети называются левым и правым сыновьями. Каждый элемент бинарного дерева называется узлом дерева.
Каждый узел в дереве задаёт поддерево, корнем которого он является. У вершины n=(data, left, right) есть два ребёнка (левый и правый) left и right и, соответственно, два поддерева (левое и правое) с корнями left и right.
Двоичное дерево поиска (англ. binary search tree, BST) — это двоичное дерево, для которого выполняются следующие дополнительные условия (свойства дерева поиска):
Очевидно, данные в каждом узле должны обладать ключами на которых определена операция сравнения меньше.
Как правило, информация, представляющая каждый узел, является записью, а не единственным полем данных. Однако, это касается реализации, а не природы двоичного дерева поиска.
Основным преимуществом двоичного дерева поиска перед другими структурами данных является возможная высокая эффективность реализации основанных на нём алгоритмов поиска и сортировки.
Двоичное
дерево поиска применяется для построения
более абстрактных структур, таких
как множества, мультимножества, ассоциативные
массивы (рис.
4).
Базовый интерфейс двоичного дерева поиска состоит из трех операций:
Списочные и табличные структуры являются простыми. Ими легко пользоваться, поскольку адрес каждого элемента задается числом (для списка), двумя числами (для двумерной таблицы) или несколькими числами для многомерной таблицы. Данные можно сортировать по любому избранному критерию, например: по алфавиту, по возрастанию порядкового номера или по возрастанию какого-либо параметра. Наиболее популярными являются стеки протоколов: TCP/IP, IPX/SPX, NetBEUI/NetBIOS, и другие. Эти стеки протоколов на физическом и канальном уровнях используют стандартизованные протоколы Ethernet, Token Ring, FDDI и некоторые другие, которые позволяют использовать во всех сетях одну и ту же аппаратуру. На верхних уровнях все стеки работают со своими собственными протоколами. Стеки, очереди, деки используются в программах для повышения эффективности и снижения затрат на управление предприятием или многоквартирным домом, за счет автоматизации расчетно-информационных задач: контроль за расчетами с покупателями/абонентами и поставщиками, бухгалтерский или подомовой учет доходов и расходов, оперативное получение необходимой аналитической информации, для автоматизации занесения показаний приборов учета и отметок об их состоянии.