Чтение онлайн

на главную - закладки

Жанры

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С

Пак Дэниэл Дж.

Шрифт:

fprintf(outputfile, "\n\nStack is not full.");

return NO;

 }

}

/********************************************************************/

/*print_stack: печать текущего элемента (на вершине стека) */

/********************************************************************/

void print_stack(stack a_stack) {

 int i;

 if (!(stack_empty(a_stack)))/*проверить
не пуст ли стек перед печатью*/

 { /*перейти к основанию стека перед печатью */

for(i = a_stack.stack_top; i>=0; i=i-1)

fprintf(outputfile, "\nStack item: %d", a_stack.stack_item[i]);

 } else fprintf(outputfile,"\nCannot print - stack is empty!");

}

/********************************************************************/

/*push(stack *, int): запись элемента в стек */

/********************************************************************/

void push(stack *a_stack, int item) {

 fprintf(outputfile, "\n\nBefore push - stack pointer: %d",

a_stack->stack_top);

 if (!(stack_full(*a_stack))) /*проверка заполнения стека*/

/* перед записью элемента*/

 {

a_stack->stack_item[a_stack->stack_top] = item;

fprintf(outputfile, "\nstack item after push: %d",

a_stack->stack_item[a_stack->stack_top]);

 a_stack->stack_top = a_stack->stack_top + 1;

 fprintf(outputfile, "\nstacktop after push: %d",

a_stack->stack_top);

 } else fprintf(outputfile, "\nCannot push - stack is full!");

}

/********************************************************************/

/*pull(stack *): извлечение элемента из стека */

/********************************************************************/

int pull(stack *a_stack) {

 int item;

 fprintf(outputfile,"\n\nBefore pull - stack pointer: %d",

a_stack->stack_top);

 if (!(stack_empty(*a_stack))) /*проверка не пуст ли стек */

/*перед извлечением элемента*/

 {

item = a_stack->stack_item[a_stack->stack_top-1];

fprintf(outputfile, "\nstack item pulled: %d", item);

a_stack->stack_top = a_stack->stack_top - 1;

fprintf(outputfile,"\nstacktop after pull: %d",

a_stack->stack_top); return item;

 } else fprintf(outputfile, "\nCannot pull - stack is empty!");

}

/********************************************************************/

Мы

показали работу этого примера на рис. 8.12. После выполнения этой программы будет выдан следующий код:

Рис. 8.12. Запись в стек и извлечение из стека

Stack top: 0

Stack Empty!

Stack is not full.

Stack top: 0

Stack Empty!

Cannot print - stack is empty!

Before push - stack pointer: 0

Stack is not full.

stack item after push: 11

stacktop after push: 1

Before push - stack pointer: 1

Stack is not full.

stack item after push: 12

stacktop after push: 2

Before push - stack pointer: 2

Stack is not full.

stack item after push: 13

stacktop after push: 3

Before push - stack pointer: 3

Stack is not full.

stack item after push: 14

stacktop after push: 4

Stack top: 4

Stack is not empty.

Stack item: 0

Stack item: 14

Stack item: 13

Stack item: 12

Stack item: 11

Before pull - stack pointer: 4

Stack top: 4

Stack is not empty

stack item pulled: 14

stacktop after pull: 3

Before pull - stack pointer: 3

Поделиться:
Популярные книги

Законы Рода. Том 10

Андрей Мельник
10. Граф Берестьев
Фантастика:
юмористическая фантастика
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 10

Соль этого лета

Рам Янка
1. Самбисты
Любовные романы:
современные любовные романы
6.00
рейтинг книги
Соль этого лета

Доверься мне

Кажанова Юлия
Любовные романы:
любовно-фантастические романы
эро литература
5.00
рейтинг книги
Доверься мне

Зауряд-врач

Дроздов Анатолий Федорович
1. Зауряд-врач
Фантастика:
альтернативная история
8.64
рейтинг книги
Зауряд-врач

Идеальный мир для Лекаря 29

Сапфир Олег
29. Лекарь
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 29

В погоне за женой, или Как укротить попаданку

Орлова Алёна
Фантастика:
фэнтези
6.62
рейтинг книги
В погоне за женой, или Как укротить попаданку

Плохой парень, Купидон и я

Уильямс Хасти
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Плохой парень, Купидон и я

Достигая Вершин

ZerKo
1. Достигая Вершин
Фантастика:
фэнтези
5.00
рейтинг книги
Достигая Вершин

Охота на попаданку. Бракованная жена

Герр Ольга
Любовные романы:
любовно-фантастические романы
5.60
рейтинг книги
Охота на попаданку. Бракованная жена

Идеальный мир для Лекаря 12

Сапфир Олег
12. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 12

Лейтенант космического флота

Борчанинов Геннадий
1. Звезды на погонах
Фантастика:
боевая фантастика
космическая фантастика
космоопера
рпг
фэнтези
фантастика: прочее
5.00
рейтинг книги
Лейтенант космического флота

Громовая поступь. Трилогия

Мазуров Дмитрий
Громовая поступь
Фантастика:
фэнтези
рпг
4.50
рейтинг книги
Громовая поступь. Трилогия

Часовое имя

Щерба Наталья Васильевна
4. Часодеи
Детские:
детская фантастика
9.56
рейтинг книги
Часовое имя

Командир Красной Армии

Поселягин Владимир Геннадьевич
1. Командир Красной Армии
Фантастика:
попаданцы
8.72
рейтинг книги
Командир Красной Армии