Студопедия — Динамические списки
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Динамические списки






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

Последнее звено списка ни на что не ссылается, поэтому значением его указателя должно быть nil.

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

Если же новое звено прицеплять к списку с хвоста, то нужно указатель последнего звена настроить на новое звено, а указатель нового звена установить в nil. Возможен и третий вариант: вставить новое звено внутрь уже сформированной цепочки.

Можно удалять звено из списка. После удаления последнего звена, указатель предыдущего звена нужно установить в nil. Если удаляется промежуточное звено, то указатель предыдущего звена нужно настроить на следующее за удаляемым звено.

Type

P=^TStudent;

TStudent= record

fam:string[20];// фамилия

imja:string[20];//имя

next:P;// следующий элемент списка

end;

Var

head:P; // начало

//добавить элемент в начало списка

procedure TForm1.Button1Click(Sender: TObject);

Var

curr:P;//указатель на новый элемент

Begin

new(curr);// выделить память

curr^.fam:=Edit1.Text;

curr^.imja:= Edit2.Text;

//добавление

curr^.next:=head;

head:=curr;

//очистить поле ввода

Edit1.Text:='';

Edit2.Text:='';

end;

// вывести список

procedure TForm1.Button2Click(Sender: TObject);

Var

curr:P;//текущий элемент списка

n:integer;//длина списка

st:string;//строковое представление списка

Begin

n:=0;

st:='';

curr:=head;//указатель на первый элемент списка







Дата добавления: 2015-08-12; просмотров: 354. Нарушение авторских прав; Мы поможем в написании вашей работы!



Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

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

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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

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

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

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

Виды сухожильных швов После выделения культи сухожилия и эвакуации гематомы приступают к восстановлению целостности сухожилия...

КОНСТРУКЦИЯ КОЛЕСНОЙ ПАРЫ ВАГОНА Тип колёсной пары определяется типом оси и диаметром колес. Согласно ГОСТ 4835-2006* устанавливаются типы колесных пар для грузовых вагонов с осями РУ1Ш и РВ2Ш и колесами диаметром по кругу катания 957 мм. Номинальный диаметр колеса – 950 мм...

Философские школы эпохи эллинизма (неоплатонизм, эпикуреизм, стоицизм, скептицизм). Эпоха эллинизма со времени походов Александра Македонского, в результате которых была образована гигантская империя от Индии на востоке до Греции и Македонии на западе...

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия