Студопедия
Главная страница | Контакты | Случайная страница

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

Б) Параллельные массивы

Читайте также:
  1. А) Ссылочные переменные б) Параллельные массивы
  2. Вложенные циклы. структурированные типы данных - массивы. объявление и использование массивов в программе. одномерные и многомерные массивы.
  3. Вопрос 23. Сложные типы данных. Массивы. Операторы ввода-вывода.
  4. Массивы в C (часть 2): многомерные массивы
  5. Массивы в языках Pascal и Basic
  6. Массивы и их организация. Типы данных в массиве. Диапазон индекса. Одномерные массивы примеры.
  7. Массивы массивов
  8. Массивы переменных размеров. Функции использования динамической памяти.
  9. Массивы символьных строк

Лекция 16. Обработка списков

 

Программирование типовых операций

 

Приведем примеры фрагментов выполнения типовых операций над списком из примеров 15.1 и 15.2 (лекция 15). Алгоритмы выполнения операций для ссылочных переменных и параллельных массивов одинаковы. Отличаются только обозначения операндов (см. табл. 15.1) и функций управления памятью. Поэтому для параллельных массивов даны лишь некоторые операции.

Для параллельных массивов используются функции управления памятью из примера 14.3. В этом случае перед началом работы требуется инициализация кучи: inic_kuchi ();

Пример 16.1. Переход к следующему элементу списка (продвижение указателя i к преемнику элемента *i) (рис. 16.1).

А) Ссылочные переменные б) Параллельные массивы

i = i->uk; i = uk[i];

Эта операция аналогична операции перехода к следующему элементу в векторе: i = i + 1; где i - индекс некоторого элемента вектора.

 

 

 


а) в векторе: i = i+1; б) в списке: i = i->uk; (или i = uk[i];)

Рис. 16.1. Переход к следующему элементу

 

Пример 16.2. Создание пустого списка с указателем p

А) Ссылочные переменные б) Параллельные массивы

p = NULL; p = NOL;

Пример 16.3. Создание нового элемента *i и запись в него значения nov_id.

А) Ссылочные переменные

i =(struct el_sp *) malloc (sizeof(struct el_sp)); /* Получение памяти */

if (i!= NULL) /* Есть место */

strcpy(i->id, nov_id); /* Запись значения */

else... /* Нет свободной памяти для нового элемента */

б) Параллельные массивы

i = nov_el(); /* Получение памяти */

if (i!= NOL) /* Есть место */

strcpy (zn[i], nov_id); /* Запись значения */

else... /* Нет свободной памяти для нового элемента */

Пример 16.4. Уничтожeние элемента *i (освобождение занимаемой им памяти):




Дата добавления: 2015-02-16; просмотров: 78 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав