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

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

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






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

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



Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

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

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Понятие метода в психологии. Классификация методов психологии и их характеристика Метод – это путь, способ познания, посредством которого познается предмет науки (С...

ЛЕКАРСТВЕННЫЕ ФОРМЫ ДЛЯ ИНЪЕКЦИЙ К лекарственным формам для инъекций относятся водные, спиртовые и масляные растворы, суспензии, эмульсии, ново­галеновые препараты, жидкие органопрепараты и жидкие экс­тракты, а также порошки и таблетки для имплантации...

Тема 5. Организационная структура управления гостиницей 1. Виды организационно – управленческих структур. 2. Организационно – управленческая структура современного ТГК...

Признаки классификации безопасности Можно выделить следующие признаки классификации безопасности. 1. По признаку масштабности принято различать следующие относительно самостоятельные геополитические уровни и виды безопасности. 1.1. Международная безопасность (глобальная и...

Прием и регистрация больных Пути госпитализации больных в стационар могут быть различны. В цен­тральное приемное отделение больные могут быть доставлены: 1) машиной скорой медицинской помощи в случае возникновения остро­го или обострения хронического заболевания...

ПУНКЦИЯ И КАТЕТЕРИЗАЦИЯ ПОДКЛЮЧИЧНОЙ ВЕНЫ   Пункцию и катетеризацию подключичной вены обычно производит хирург или анестезиолог, иногда — специально обученный терапевт...

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