Стек свободного пространства

До сих пор мы не заботились о том, куда деваются освобождаемые узлы списков, перекладывая это на алгоритмы работы с "кучей". Это было возможно, потому, что наши списки располагались в оперативной памяти и в нашем распоряжении имелись операторы new и delete. Существуют ситуации, когда программа сама должна заботиться об "утилизации" осво­бож­даемых узлов списков. Такая ситуация возникнет, если отказаться от кучи как поставщика узлов или список находится на внешнем носителе. Просто бросать освободившиеся узлы было бы слишком расточительно. Мы будем помещать их в стек свободного пространства, организованный как линейный односвязный

 
 

список. Когда нам потребуется новый узел, то возьмем его из вершины стека. Операция вставки иллюстрируется рис. 20.

Рис 20. Вставка узла в список.

 

Текст функции приведен ниже.

NODE *InsertNode(NODE *p, NODE *s){

// Вставка узла вслед за p

// s – указатель на вершину стека свободного пространства

// возвращает указатель на новый узел

NODE *X;

X=s;

s=s->Next;

X->Next=p->Next;

p->Next=X;








Дата добавления: 2014-12-02; просмотров: 819;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.