Курсовая работа: Динамические структуры данных
}
}
По определению стека - удалять можно только последний элемент, не разрушая стека.
Входные параметры отсутствуют. Выходного значения нету.
2.3 Процедура очистки памяти
Процедура очистки памяти от всего стека, код:
voidtStack:: Free ()
{
if (temp) deletetemp; // если есть временная переменная temp, то очистить от неё память
if (pNext) // если есть хотя бы один элемент
{
temp = this; // temp присваивается текущее значение
pNext->Free (); // запускаем метод Free () для следующего элемента
}
}
Достаточно удалить первый элемент стека для разрушения стека, здесь удаляется весь стек с конца, т.е. сначала процедура доходит до конца стека, далее в обратном порядке удаляет в памяти значения элементов.
Входные параметры отсутствуют. Выходного значения нету.
2.4 Распечатка содержимого
Ниже приведен код распечатки содержимого всего стека:
void tStack:: Print (TMemo* memo)
{
memo->Lines->Add ("* - -------------- - *"); // вывод на экран значений
memo->Lines->Add (strFName);
memo->Lines->Add (strRValue);
memo->Lines->Add (IntToStr (numPar));
for (inti = 0; i < numPar; i++) // повторяем в цикле распечатку параметров с каждой новой строчки
{
memo->Lines->Add (pParam [i]); // добавление указателя pParam [i]
}
if (pNext) // если есть следующий элемент
pNext->Print (memo); // рекурсивно запустить распечатку следующего элемента