Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Функция формирования элемента стека





Простейший вид функции (push), в которую в качестве параметров передаются указатель на вершину и введенная информация, а измененное значение вершины возвращается в точку вызова оператором return:

Stack* InStack(Stack *p, int in) {

Stack *t = new Stack; // Захватываем память для элемента

t -> info = in; // Формируем информационную часть

t -> next = p; // Формируем адресную часть

return t;

}

Обращение к этой функции для добавления нового элемента «а» в стек, вершиной которого является указатель begin: begin = InStack(begin, a);

 

Алгоритм просмотра стека (без извлечения его элементов, т.е. без сдвига вершины)

1. Устанавливаем текущий указатель на начало списка: t = begin;

2. Начинаем цикл, работающий до тех пор, пока указатель t не равен NULL (признак окончания списка).

3. Выводим информационную часть текущего элемента t -> info на экран.

4. Текущий указатель переставляем на следующий элемент, адрес которого находится в поле next текущего элемента: t = t -> next;

5. Конец цикла.

Функция, реализующая рассмотренный алгоритм:

void View(Stack *p) {

Stack *t = p;

while(t! = NULL) {

// Вывод на экран информационной части, например, cout < < t -> info < < endl;

t = t -> Next;

}

}

Обращение к этой функции: View(begin);

Блок-схема функции View представлена на рис. 3.1.

Рис. 3.1

 

Функция получения информации из вершины стека c извлечением:

Stack* OutStack(Stack* p, int *out) {

Stack *t = p; // Устанавливаем указатель t на вершину p

*out = p -> info;

p = p -> next; // Переставляем вершину p на следующий

delete t; // Удаляем бывшую вершину t

return p; // Возвращаем новую вершину p

}

Обращение к этой функции: begin = OutStack(begin, & a); информацией является переданное по адресу значение «а».

Функция освобождения памяти, занятой стеком:

void Del_All(Stack **p) {

Stack *t;

while(*p! = NULL) {

t = *p;

*p = (*p) -> Next;

delete t;

}

}

Обращение к этой функции: Del_All(& begin); после ее выполнения указатель на вершину begin будет равен NULL.







Дата добавления: 2014-11-10; просмотров: 967. Нарушение авторских прав; Мы поможем в написании вашей работы!




Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...


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

Эндоскопическая диагностика язвенной болезни желудка, гастрита, опухоли Хронический гастрит - понятие клинико-анатомическое, характеризующееся определенными патоморфологическими изменениями слизистой оболочки желудка - неспецифическим воспалительным процессом...

Признаки классификации безопасности Можно выделить следующие признаки классификации безопасности. 1. По признаку масштабности принято различать следующие относительно самостоятельные геополитические уровни и виды безопасности. 1.1. Международная безопасность (глобальная и...

Прием и регистрация больных Пути госпитализации больных в стационар могут быть различны. В цен­тральное приемное отделение больные могут быть доставлены: 1) машиной скорой медицинской помощи в случае возникновения остро­го или обострения хронического заболевания...

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

Типовые примеры и методы их решения. Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно. Какова должна быть годовая номинальная процентная ставка...

Выработка навыка зеркального письма (динамический стереотип) Цель работы: Проследить особенности образования любого навыка (динамического стереотипа) на примере выработки навыка зеркального письма...

Studopedia.info - Студопедия - 2014-2026 год . (0.01 сек.) русская версия | украинская версия