Основные структуры данных

Автор: Пользователь скрыл имя, 06 Февраля 2011 в 12:57, курсовая работа

Описание работы

Целью любой информационной системы является обработка данных об объектах и явлениях реального мира и предоставление нужной человеку информации о них. Для достижения поставленной цели необходимо решить следующие задачи:

- дать общую характеристику данным;

- изучить различные структуры данных;

- проанализировать упорядочение структур данных;

- рассмотреть режимы обработки данных;

- решить практическую задачу с использованием средств MS Exsel

Содержание

Введение……………………………………………………………………….3

Теоретическая часть «Основные структуры данных»……………………...4

Введение……………………………………………………………………….4

1. Общая характеристика данных……………………………………………4

2. Классификация структур данных…………………………………………5

3. Характеристика основных типовых структур……………………………7

Заключение…………………………………………………………………..15

Практическая часть………………………………………………………….17

1. Общая характеристика и задачи…………………………………………17

2. Описание алгоритма решения задачи……………………………………17

Список использованной литературы……………………………………….25

Работа содержит 1 файл

курсовая основные структуры данных.doc

— 236.50 Кб (Скачать)

    Добавление  элемента, называемое также проталкиванием (push), возможно только в вершину стека (добавленный элемент становится первым сверху). Удаление элемента, называемое также выталкивание (pop), возможно также только из вершины стека, при этом, второй сверху элемент становится верхним (рис.2).

    Рис.2 Простое представление стека 

    Стеки широко применяются в вычислительной технике — в частности, для отслеживания точек возврата из подпрограмм используется стек вызовов, который является неотъемлемой частью архитектуры большинства современных процессоров. Языки программирования высокого уровня также используют стек вызовов для передачи параметров при вызове процедур. Арифметические сопроцессоры, программируемые микрокалькуляторы и язык Forth используют стековую модель вычислений [6].

    О́чередь структура данных с дисциплиной доступа к элементам «первый пришёл — первый вышел» (FIFO, First In — First Out). Добавление элемента (принято обозначать словом enqueue — поставить в очередь) возможно лишь в конец очереди, выборка — только из начала очереди (что принято называть словом dequeue — убрать из очереди), при этом выбранный элемент из очереди удаляется (рис. 3).

     

    Рис. 3 Реализация очереди на базе массива 

      Очередь в программировании используется, как  и в реальной жизни, когда нужно  совершить какие-то действия в порядке их поступления, выполнив их последовательно. Примером может служить организация событий в Windows. Когда пользователь оказывает какое-то действие на приложение, то в приложении не вызывается соответствующая процедура (ведь в этот момент приложение может совершать другие действия), а ему присылается сообщение, содержащее информацию о совершенном действии, это сообщение ставится в очередь, и только когда будут обработаны сообщения, пришедшие ранее, приложение выполнит необходимое действие [7].

    Деком (англ. deque – аббревиатура от double-ended queue, двухсторонняя очередь) называется структура данных, в которую можно удалять и добавлять элементы как в начало, так и в конец. Дек хранится в памяти так же, как и очередь. Система команд дека:

  • push_front  - добавить (положить) в начало дека новый элемент;
  • push_back  - добавить (положить) в конец дека новый элемент;
  • pop_front - извлечь из дека первый элемент;
  • pop_back  - извлечь из дека последний элемент;
  • front  - узнать значение первого элемента (не удаляя его);
  • back  - узнать значение последнего элемента (не удаляя его);
  • size  - узнать количество элементов в деке;
  • clear - очистить дек (удалить из него все элементы).

    Примером  дека может быть некий терминал, в который вводятся команды, каждая из которых выполняется какое-то время. Если ввести следующую команду, не дождавшись, пока закончится выполнение предыдущей, то она встанет в очередь и начнет выполняться, как только освободится терминал. Это тоже FIFO очередь. Если же дополнительно ввести операцию отмены последней введенной команды, то получается дек [8].

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

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

    Табличная структура данных                           Таблица 1

Планета Расстояние  до Солнца, а.е. Относительная масса Количество  спутников
    Меркурий     0,39     0,056     0
    Венера     0,67     0,88     0
    Земля     1,0     1,0     1
    Марс     1,51     0,1     2
    Юпитер      5,2     318     16

    Если  нужно сохранить таблицу в  виде длинной символьной строки, используют один символ-разделитель между элементами, принадлежащими одной строке, и другой разделитель для отделения строк:

    Меркурий0,39*0,056*0#Венера*0,67*0,88*0#Земля*1,0*1,0*1#Марс*1,51*0,1*2#...

    Для розыска элемента, имеющего адрес  ячейки (m, n), надо просмотреть набор данных с самого начала и пересчитать внешние разделители. Когда будет отсчитан m-1 разделитель, надо пересчитывать внутренние разделители. После того как будет найден n-1 разделитель, начнется нужный элемент. Он закончится, когда будет встречен любой очередной разделитель.

    Еще проще можно действовать, если все элементы таблицы имеют равную длину. Такие таблицы называют матрицами. В данном случае разделители не нужны, поскольку все элементы имеют равную длину и количество их известно. Для розыска элемента с адресом (m, n) в матрице, имеющей M строк и N столбцов, надо просмотреть ее с самого начала и отсчитать а [N (m-1)+(n-1)] символ, где а - длина одного элемента. Со следующего символа начнется нужный элемент. Его длина равна а, поэтому его конец определить нетрудно.

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

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

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

    Пуск > Программы > Стандартные > Калькулятор.

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

    В иерархической структуре, построенной  методом дихотомии, путь доступа  к любому элементу можно представить как путь через рациональный лабиринт с поворотами налево (0) или направо (1) и, таким образом, выразить путь доступа в виде компактной двоичной записи [9, c.46-54].

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

    Каждый  узел в дереве задаёт поддерево, корнем которого он является. У вершины n=(data, left, right) есть два ребёнка (левый и правый) left и right и, соответственно, два поддерева (левое и правое) с корнями left и right.

    Двоичное  дерево поиска (англ. binary search tree, BST) — это двоичное дерево, для которого выполняются следующие дополнительные условия (свойства дерева поиска):

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

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

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

    Основным  преимуществом двоичного дерева поиска перед другими структурами данных является возможная высокая эффективность реализации основанных на нём алгоритмов поиска и сортировки.

    Двоичное  дерево поиска применяется для построения более абстрактных структур, таких  как множества, мультимножества, ассоциативные массивы (рис. 4). 

    Рис. 4 Двоичное дерево поиска

    Базовый интерфейс двоичного дерева поиска состоит из трех операций:

  • FIND(K) — поиск узла, в котором хранится пара (key, value) с key = K.
  • INSERT(K,V) — добавление в дерево пары (key, value) = (K, V).
  • REMOVE(K) — удаление узла, в котором хранится пара (key, value) с key = K [10].

     

    ЗАКЛЮЧЕНИЕ

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

    В MS Office средством для создания электронных  таблиц является табличный процессор Excel, также популярными являются электронные таблицы Quattro Pro фирмы Novell и Lotus 1-2-3 фирмы Lotus Development. Все они работают в среде Windows и выполняют принципиально одни и те же функции с некоторыми различиями в их реализации [4].

    Списочные и табличные структуры являются простыми. Ими легко пользоваться, поскольку адрес каждого элемента задается числом (для списка), двумя числами (для двумерной таблицы) или несколькими числами для многомерной таблицы. Данные можно сортировать по любому избранному критерию, например: по алфавиту, по возрастанию порядкового номера или по возрастанию какого-либо параметра. Наиболее популярными являются стеки протоколов: TCP/IP, IPX/SPX, NetBEUI/NetBIOS, и другие. Эти стеки протоколов на физическом и канальном уровнях используют стандартизованные протоколы Ethernet, Token Ring, FDDI и некоторые другие, которые позволяют использовать во всех сетях одну и ту же аппаратуру. На верхних уровнях все стеки работают со своими собственными протоколами. Стеки, очереди, деки используются  в программах для повышения эффективности и снижения затрат на управление предприятием или многоквартирным домом, за счет автоматизации расчетно-информационных задач: контроль за расчетами с покупателями/абонентами и поставщиками, бухгалтерский или подомовой учет доходов и расходов, оперативное получение необходимой аналитической информации, для автоматизации занесения показаний приборов учета и отметок об их состоянии.

Информация о работе Основные структуры данных