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

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

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






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

Последнее звено списка ни на что не ссылается, поэтому значением его указателя должно быть 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; просмотров: 356. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

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

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

ПРОФЕССИОНАЛЬНОЕ САМОВОСПИТАНИЕ И САМООБРАЗОВАНИЕ ПЕДАГОГА Воспитывать сегодня подрастающее поколение на со­временном уровне требований общества нельзя без по­стоянного обновления и обогащения своего профессио­нального педагогического потенциала...

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

Мотивационная сфера личности, ее структура. Потребности и мотивы. Потребности и мотивы, их роль в организации деятельности...

Хронометражно-табличная методика определения суточного расхода энергии студента Цель: познакомиться с хронометражно-табличным методом опреде­ления суточного расхода энергии...

ОЧАГОВЫЕ ТЕНИ В ЛЕГКОМ Очаговыми легочными инфильтратами проявляют себя различные по этиологии заболевания, в основе которых лежит бронхо-нодулярный процесс, который при рентгенологическом исследовании дает очагового характера тень, размерами не более 1 см в диаметре...

Примеры решения типовых задач. Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2   Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2. Найдите константу диссоциации кислоты и значение рК. Решение. Подставим данные задачи в уравнение закона разбавления К = a2См/(1 –a) =...

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