Двунаправленный динамический список
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: реферат отрасль, сочинения по картинам
| Добавил(а) на сайт: Ruskih.
Предыдущая страница реферата | 1 2
Эта процедура выполняет вывод содержимого списка в виде таблицы.
Сначала на дисплей выводится шапка таблицы, содержащая: «Фамилия Имя
Отчество», «Дата рождения» и «Знак зодиака». После вывода шапки проверяется
наличие элементов в списке.
Если список содержит элементы, то происходит их построчный вывод. Это
реализовано с помощью цикла, который выполняется, пока указатель на текущий
элемент (temp) не переберёт все элементы списка. В цикле вычисляется длина
фамилии, имени и отчества, после чего они выводятся на дисплей, а за ними
выводятся дата рождения и знак зодиака; затем указателю на текущий элемент
(temp) присваивается указатель на следующий за ним элемент.
Если список окажется пуст, то выводится сообщение: «Таблица пуста».
После завершения цикла или вывода сообщения, процедура просмотра завершается.
Процедура сортировки “Sortir”.
Для этой процедуры применена локальная переменная “tmp” типа “ukazat”.
Здесь сначала проверяется наличие элементов в списке.
Если список содержит элементы, то переменной “m” присваивается
значение “true”, затем выполняется цикл, пока “m=true”. В цикле переменной
“m” присваивается значение “false”, указателю на текущий элемент (temp)
присваивается указатель на первый элемент в списке (first), и выполняется
вложенный цикл, пока указатель на следующий элемент внутри текущего не
равен “nil”. В этом цикле проверяется какой элемент больше.
Если текущий элемент окажется больше чем следующий за ним элемент, тогда переменной “m” присваивается значение “true”, и проверяется
местонахождение текущего элемента в списке. Если он окажется в начале
списка, то указателю на первый элемент в списке (first) присваивается
указатель на следующий элемент за текущим, а иначе указателю на следующий
элемент (next) внутри предыдущего перед текущим элементом присваивается
указатель на следующий элемент внутри текущего. Если же текущий элемент
окажется в конце списка, тогда указателю на последний элемент в списке
присваивается указатель на текущий элемент, а локальной переменной “tmp”
присваивается значение “nil”, а иначе указателю на предыдущий элемент
(prev) следующего элемента после следующего за текущим элементом
присваивается указатель на текущий элемент, а локальной переменной (tmp)
присваивается указатель на следующий элемент после следующего за текущим
элементом. После выяснения местоположения и выполнения некоторых команд, указателю на следующий элемент после следующего за текущим элементом
присваивается указатель на текущий элемент, указателю на предыдущий элемент
следующего за текущим элементом присваивается указатель на предыдущий
элемент перед текущим; а внутри текущего элемента указателю на предыдущий
перед текущим присваивается указатель на следующий элемент за текущим, и
указателю на следующий элемент за текущим присваивается локальная
переменная “tmp”. Если же текущий элемент окажется не больше чем следующий
за ним элемент, тогда указателю на текущий элемент (temp) присваивается
указатель на следующий за ним элемент (next). На этом выполнение вложенного
цикла завершается.
Переменной “m” снова присваивается значение “false”, а указателю на текущий элемент (temp) присваивается указатель на последний элемент в списке (cut), и выполняется ещё один вложенный цикл, пока указатель на предыдущий элемент внутри текущего не равен “nil”. В этом цикле проверяется какой элемент меньше.
Если текущий элемент окажется меньше чем предыдущий перед ним элемент, тогда переменной “m” присваивается значение “true”, и проверяется
местонахождение текущего элемента в списке. Если он окажется в конце
списка, то указателю на последний элемент в списке (cut) присваивается
указатель на предыдущий элемент перед текущим, а иначе указателю на
предыдущий элемент (prev) внутри следующего за текущим элементом
присваивается указатель на предыдущий элемент внутри текущего. Если же
текущий элемент окажется в начале списка, тогда указателю на первый элемент
в списке присваивается указатель на текущий элемент, а локальной переменной
“tmp” присваивается значение “nil”, а иначе указателю на следующий элемент
(next) предыдущего элемента перед предыдущим до текущего элемента
присваивается указатель на текущий элемент, а локальной переменной (tmp)
присваивается указатель на предыдущий элемент перед предыдущим до текущего
элемента. После выяснения местоположения и выполнения некоторых команд, указателю на предыдущий элемент перед предыдущим до текущего элемента
присваивается указатель на текущий элемент, указателю на следующий элемент
предыдущего перед текущим элементом присваивается указатель на следующий
после текущего; а внутри текущего элемента указателю на следующий элемент
присваивается указатель на предыдущий элемент, и указателю на предыдущий
элемент присваивается локальная переменная “tmp”. Если же текущий элемент
окажется не меньше чем предыдущий перед ним элемент, тогда указателю на
текущий элемент (temp) присваивается указатель на предыдущий перед ним
элемент (prev). На этом выполнение вложенного цикла завершается.
Если во время поверки наличия элементов в списке окажется, что он
пуст, то выводится сообщение: «Таблица пуста».
После завершения цикла или вывода сообщения, процедура сортировки
завершается.
Скачали данный реферат: Kortnev, Vazov, Каширин, Дионина, Kokotkin, Bazhenov, Савватимов.
Последние просмотренные рефераты на тему: реферат на тему мир, бесплатные рассказы, реферат на тему природа, бесплатные дипломные работы.
Категории:
Предыдущая страница реферата | 1 2