Курсовая работа: Динамические структуры данных
}
bFilled = true; // поле считается заполненным
}
else
{
pNext = newtStack; // выделяем память под новые элемент tStack
pNext->Add (strFName_, strRValue_, numPar_, pParams_); // добавляем элемент
}
}
}
В этой функции реализована и проверка на переполнение стека. Проверка переполнения выполняется по количеству введенных элементов intmax_num = 1000; и счётчику текущего элемента num:
if (num == (max_num-1)) MessageBox ("AlmostOverload", "Warning ", MB_OK); // если элементов на единицу меньше максимального количества элементов, программа предупредит диалоговым окном
if (num == max_num) // если элементов максимальное количество
{
MessageBox ("Overload", "", "Error", MB_OK); // диалоговое окно с ошибкой
return; // процедура добавления элемента останавливается
}
num++; // счетчик количества введенных элементов
Реализация ввода параметров (по определенному введенному количеству) выполнена через массив указателей.
Входные параметры поступают из методов С++ Builder через поля и кнопки исполнения. Выходного значения нету.
2.2 Процедура удаления элемента
Ниже приведен код удаления элемента:
voidtStack:: Delete ()
{
if (pNext) // если есть следующий элемент
if (pNext->pNext) // если есть более 1-го элемента
pNext->Delete (); // запускаем рекурсивно метод Delete () для следующего элемента
else
{
deletepNext; // удаляем в памяти адрес указанный pNext