Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_po_OAiPR.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
1.23 Mб
Скачать

135. Директива #undef

Директива #undef удаляет ранее заданное определение имени макроса, то есть "аннулирует" его определение; само имя макроса должно находиться после директивы. В общем виде директива #undef выглядит таким образом:

#undef имя_макроса

Вот как, например, можно использовать эту директиву:

#define LEN 100

#define WIDTH 100

char array[LEN][WIDTH];

#undef LEN

#undef WIDTH

/* а здесь и LEN и WIDTH уже не определены */

И LEN, и WIDTH определены, пока не встретился оператор #undef.

Директива #undef используется в основном для того, чтобы локализовать имена макросов в тех участках кода, где они нужны.

136. Методы организации и хранения линейных списков

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

Линейный список F состоящий из элементов д1,д2,…дn записывают в виде последовательности значений заключенной в угловые скобки.

F1=<2,3,1> 3

F2=<7,7,7,2,1,12> 6

F3=<> 0

При работе со списками на практике приходится выполнять следующие операции:

1)найти элемент с заданным свойством

2)определить первый элемент в линейном списке.

3)вставить дополнительный элемент до или после указанного узла.

4)исключить определенный элемент из списка.

5)упорядочить узлы линейного списка в определенном порядке.

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

F=<7,10>

При последовательном хранении элементы линейного списка размещаются в массиве d, фиксированных размеров например 100. И длина списка указывается в переменной l, то есть в программе необходимо иметь объявления вида float d[100];int l;

Размер массива 100 ограничивает максимальные размеры линейного списка, список f в массиве d формируется так d[0]=7;

d[1]=10;

l=2;

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

typedef struct snd/*стр-ра элемента хранения*/

{float val; /*элемент списка*/

}дL;

дL;/*указатель текущего элемента*/

дL*dl;/*указатель на начало списка*/

для выделения памяти под элементы хранения необходимо пользоваться функцией malloc(sizeof(DL))

calloc(l,sizeof(DL))

формирование списка в связанном хранении может осуществляться операторами

p=malloc(sizeof(DL));

p->val=10;p->=NULL;

dl=malloc (sizeof(DL));

dl->cal=7;dl->=n=p;

в последнем элементе хранения (конец списка)указатель на соседний элемент имеет значение 0.

136. Методы организации и хранения линейных списков

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

Линейный список F состоящий из элементов д1,д2,…дn записывают в виде последовательности значений заключенной в угловые скобки.

F1=<2,3,1> 3

F2=<7,7,7,2,1,12> 6

F3=<> 0

При работе со списками на практике приходится выполнять следующие операции:

1)найти элемент с заданным свойством

2)определить первый элемент в линейном списке.

3)вставить дополнительный элемент до или после указанного узла.

4)исключить определенный элемент из списка.

5)упорядочить узлы линейного списка в определенном порядке.

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

F=<7,10>

При последовательном хранении элементы линейного списка размещаются в массиве d, фиксированных размеров например 100. И длина списка указывается в переменной l, то есть в программе необходимо иметь объявления вида float d[100];int l;

Размер массива 100 ограничивает максимальные размеры линейного списка, список f в массиве d формируется так d[0]=7;

d[1]=10;

l=2;

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

typedef struct snd/*стр-ра элемента хранения*/

{float val; /*элемент списка*/

}дL;

дL;/*указатель текущего элемента*/

дL*dl;/*указатель на начало списка*/

для выделения памяти под элементы хранения необходимо пользоваться функцией malloc(sizeof(DL))

calloc(l,sizeof(DL))

формирование списка в связанном хранении может осуществляться операторами

p=malloc(sizeof(DL));

p->val=10;p->=NULL;

dl=malloc (sizeof(DL));

dl->cal=7;dl->=n=p;

в последнем элементе хранения (конец списка)указатель на соседний элемент имеет значение 0.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]