указатель p получает новое значение – адрес добавочного элемента
Если список был пуст, то p = NULL, и мы получим первый элемент списка.
2. включение элемента в список.
a) включение после указанного p
q = (els *) malloc (sizeof (els));
q ® next = p ® next;
p ® next = q;
b) включение перед заданным p
q = (els *) malloc (sizeof (els));
q ® next = p ® next;q ® data = p ® data;
*q=*p
p ® next = q;
p ® data = <новое значение>;
3. удаление элемента из списка.
a) исключение элемента за p
q = p ® next;
p ® next = q ® next;
free (q);
b) исключение элемента p
q = p ® next;
p ® data = q ® data;p ® next = q ® next;
*p=*q;
free (q);
4. просмотр списка – проход по списку:
while (p ! = NULL) {
< обр-на элемента p >
p = p ® next; }
5. поиск элементов в списке с заданным ключевым х.
while ((p ! = Null) && (p ® data ! = х))
p = p ® next;
Разновидности линейных списков.
Стек
Стек-это список, в котором включение и исключение элементов проводится только с одного конца, который называется вершиной стека. Когда элемент помещается в стек, то элемент, ранее находившийся на вершине стека становится временно недоступным.
Стек называют списком типа LIFO (LAST IN, FIRST OUT)-последним пришел - первым ушел.
Операции со стеками:
1)запись в стек
2)удаление из стека
Особая ситуация-попытка удаления из пустого стека.