Динамические структуры данных - Курсовая работа

бесплатно 0
4.5 56
Разработка алгоритмов на динамических структурах данных. Описание структуры данных "стек". Процедуры добавления и удаления элемента, очистки памяти. Код распечатки содержимого всего стека. Инструкция пользователя, код программы, контрольный пример.

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


Аннотация к работе
Динамические структуры данных по определению характеризуются отсутствием физической смежности элементов структуры памяти непостоянством и непредсказуемостью размера (числа элементов4) структуры в процессе ее обработки. Поскольку элементы динамической структуры располагаются по непредсказуемым адресам памяти, адрес элемента такой структуры не может быть вычислен из адреса начального или предыдущего элемента. Для установления связи между элементами динамической структуры используются указатели, через которые устанавливаются явные связи между элементами. Элемент динамической структуры состоит из двух полей: информационного поля или поля данных, в котором содержатся те данные, ради которых и создается структура; в общем случае информационное поле само является интегрированной структурой-вектором, массивом, записью и т.п.; Дескриптор связной структуры содержит один или несколько указателей, позволяющих войти в структуру, далее поиск и требуемого элемента выполняется следованием по цепочке указателей от элемента к элементу.В этом разделе будут последовательно рассмотрены процедуры (методы), работающие с данной структурой (стеком). Входные значения процедур вводятся с клавиатуры посредствам различных диалоговых окон с помощью программного продукта Builder C . {char STRFNAME [255] ; // имя функции char STRRVALUE [6] ; // возвращаемое значение int NUMPAR; // количество введених параметров char** PPARAMS; // указатель на парамаетры bool BFILLED; // заполнен ли элемент } void Add (char* STRFNAME_, char* STRRVALUE_, int NUMPAR_, char** PPARAMS_); Далее приведены описания процедур: void Add (char* STRFNAME_, char* STRRVALUE_, int NUMPAR_, char** PPARAMS_);Ниже приведен код процедуры добавления элемента в стек: TSTACK* temp; // создаем указатель temp типа TSTACK int num = 0; // количество элементов 0 int max_num = 1000; // максимальное количество элементов равно 1000 void TSTACK:: Add (char* STRFNAME_, char* STRRVALUE_, int NUMPAR_, char** PPARAMS_) {if (num == (max_num-1)) MESSAGEBOX ("Almost Overload", "Warning ", MB_OK); // если элементов на единицу меньше максимального количества элементов, программа предупредит диалоговым окном if (num == max_num) // если элементов максимальное количество MESSAGEBOX ("Overload", "", "Error", MB_OK); // диалоговое окно с ошибкой return; // процедура добавления элемента останавливается PNEXT->Add (STRFNAME_, STRRVALUE_, NUMPAR_, PPARAMS_); // добавляем элемент с адресом PNEXT else Проверка переполнения выполняется по количеству введенных элементов int max_num = 1000; и счетчику текущего элемента num: if (num == (max_num-1)) MESSAGEBOX ("Almost Overload", "Warning ", MB_OK); // если элементов на единицу меньше максимального количества элементов, программа предупредит диалоговым окном if (num == max_num) // если элементов максимальное количествоНиже приведен код удаления элемента: void TSTACK:: Delete () PNEXT->Delete (); // запускаем рекурсивно метод Delete () для следующего элемента else{if (temp) delete temp; // если есть временная переменная temp, то очистить от нее память if (PNEXT) // если есть хотя бы один элемент Достаточно удалить первый элемент стека для разрушения стека, здесь удаляется весь стек с конца, т.е. сначала процедура доходит до конца стека, далее в обратном порядке удаляет в памяти значения элементов.Ниже приведен код распечатки содержимого всего стека: void TSTACK:: Print (TMEMO* memo) {memo->Lines->Add ("* --------------- - *"); // вывод на экран значений memo->Lines->Add (STRFNAME); memo->Lines->Add (STRRVALUE);Если нужно добавить элемента, то следуйте следующим пунктам: введите в поле "Имя функции" имя вашей функции; введите в поле "Возвращаемое значение" возвращаемое значение вашей функции;} void Add (char* STRFNAME_, char* STRRVALUE_, int NUMPAR_, char** PPARAMS_); void TSTACK:: Add (char* STRFNAME_, char* STRRVALUE_, int NUMPAR_, char** PPARAMS_) PPARAMS = new char* [NUMPAR] ; char* str = new char [Edit1->Text. char* str2 = new char [Edit2->Text.Введем в программу следующие значения: имя функции "summ" возвращаемое значение ‘2a 3b’; и нажмем кнопку добавить. Далее введем аналогичные данные соответственно: ‘test_summ’, ‘abajaba’, ‘qwerty asd; asd fg; asdgf1; 123 d456’ и нажмем кнопку добавить. Теперь нажмем кнопку распечатать и получим следующее, учитывая особенности условия: * --------------- - Теперь нажмем кнопку удалить, а затем кнопку распечатать: Имя функции: summДанная курсовая работа является примером обработки информации, представленной в виде стека, которые наглядно позволяет увидеть возможности реализации запросов, предусмотренных алгоритмом, т.е. осуществление ряда операций над данными такой структуры. Описание алгоритма программным способом реализовано при помощи языка С . Область применения алгоритма достаточно обширна, т.к сам алгоритм представляет собой один из способов обработки информации.

План
Содержание

Аннотация

1. Теоретические сведения

1.1 Описание структуры данных "стек"

2. Разработка

2.1 Процедура добавления элемента

2.2 Процедура удаления элемента

2.3 Процедура очистки памяти

2.4 Распечатка содержимого

3. Инструкция пользователя

4. Код программы

5. Контрольный пример

Заключение

Перечень используемой литературы

Приложения

1. Теоретические сведения

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

Описание алгоритма программным способом реализовано при помощи языка С .

Область применения алгоритма достаточно обширна, т.к сам алгоритм представляет собой один из способов обработки информации.

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

Перечень используемой литературы

1. М. Уэйт, С. Прата "Язык Си", М: МИР, 1988

2. У. Мюррей, К. Паллас "Visual C ", М: BHV, 1996

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

Дисциплины научных работ





Хотите, перезвоним вам?