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

Программная реализация стека на основе массива

Читайте также:
  1. Анализ колебаний эконом.эф-ти на основе модели IS-LM с фиксированными ценами
  2. Анализ колебаний экономической активности на основе модели IS-LM с фиксированными ценами.
  3. Анализ конкурентоспособности организации на основе концепции 5 сил Портера
  4. Анализ макроэк-их результатов фискальной политики на основе кейнсианской модели общего макроэк-го равновесия.
  5. Анализ макроэкономических результатов денежно-кредитной политики на основе кейнсианской модели общего макроэкономического равновесия.
  6. Анализ макроэкономических результатов денежно-кредитной политики на основе кейнсианской модели общего макроэкономического равновесия.
  7. Анализ макроэкономических результатов фискальной политики на основе кейнсианской модели общего макроэкономического равновесия.
  8. Анализ макроэкономических результатов фискальной политики на основе кейнсианской модели общего макроэкономического равновесия.
  9. Анализ результатов воздействия денежно-кредитной политики на реальные и номинальные показатели функционирования национальной экономики на основе кейнсианской модели ОМР
  10. Анализ экономических колебаний на основе модели IS-LM с фиксированными ценами.
  11. Атрибуция на основе анализа документов
  12. БелАбердаобразное брюзжание на научной основе

Пример 14.1

Файл stack.h

#include <stdio.h>

#include <stdlib.h>

#include <malloc.h>

#include <conio.h>

////////////////////// Stack for char

typedef struct

{char *stack;

int head;

int size;

} STACK;

int Init(STACK* Stack, int nSize);

char Pop(STACK* Stack);

int Push(STACK* Stack, char cElement);

void Clear(STACK* Stack);

int GetSize(STACK* Stack);

void Free(STACK* Stack);

 

#include "stack.h"

////////////////////// Stack for char

///////////////////////////////////////////////

int Init(STACK* Stack, int nSize)

{Stack->stack = (char*)malloc(nSize);

if (Stack->stack == NULL) return -1;

Stack->size = nSize;

Stack->head = 0;

return nSize;

}

///////////////////////////////////////////////

char Pop(STACK* Stack)

{if (Stack->head == 0) return 0;

return Stack->stack[--Stack->head]; }

///////////////////////////////////////////////

int Push(STACK* Stack, char cElement)

{if (Stack->head == Stack->size) return -1;

Stack->stack[Stack->head++] = cElement;

return 1;

}

///////////////////////////////////////////////

void Clear(STACK* Stack)

{Stack->head = 0;}

///////////////////////////////////////////////

int GetSize(STACK* Stack)

{ return Stack->head;

}

///////////////////////////////////////////////

void Free(STACK* Stack)

{ free(Stack->stack); }

 

void main()

{STACK A;

Init(&A, 8);

Push(&A, 'J');

Push(&A, 'F');

char c = Pop(&A);

...

Варианты индивидуальных заданий

Задание 1

1. Создать стек для целых чисел. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Добавить 6 элементов. Удалить и вывести на экран 2 элемента.

2. Создать стек для целых (положительных и отрицательных) чисел. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Ввести с экрана 6 элементов. При вводе чисел в стек попадают только отрицательные элементы. Вывести все элементы стека.

3. Создать стек для целых чисел. Максимальный размер стека вводится с экрана. Создать функции для ввода, вывода и определения размера стека. Ввести с экрана 6 элементов. Удалить 2 элемента. Вывести размер стека.

4. Создать стек для целых (положительных и отрицательных) чисел. Максимальный размер стека вводится с экрана. Создать функции для ввода, вывода и определения размера стека. Вводить с экрана числа, причем в стек должны добавляться поочередно положительные и отрицательные числа.

5. Создать стек для символов. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Ввести эталонный символ. Вводить символы с экрана в стек до встречи эталонного. Вывести все элементы стека.

6. Создать стек для символов. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Добавить символы с экрана в стек. После добавления 5-го символа перед добавлением удалять элемент из стека.

7. Создать стек для символов. Максимальный размер стека вводится с экрана. Создать функции для ввода, вывода и определения размера стека. Ввести эталонный символ. Вводить символы с экрана в стек до встречи эталонного. Вывести размер стека.

8. Создать стек для символов. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Добавлять символы с экрана в стек. В случае совпадения вводимого символа с вершиной стека вытолкнуть его и распечатать ее.

9. Создать стек для символов. Максимальный размер стека вводится с экрана. Создать функции для ввода, вывода и определения размера стека. Вводить символы с экрана в стек. В случае совпадения вводимого символа с вершиной стека вывести размер стека.

10. Создать два стека для символов. Максимальный размер стеков вводится с экрана. Создать функции для ввода и вывода элементов стека. Вводить символы с экрана в первый стек. В случае совпадения вводимого символа с вершиной стека вводить во второй стек.

11. Создать два стека для символов. Максимальный размер стеков вводится с экрана. Создать функции для ввода и вывода элементов стека. Вводить символы с экрана в стеки поочередно.

12. Создать стек для символов и стек для чисел. Максимальный размер стеков вводится с экрана. Создать функции для ввода и вывода элементов стека. Вводить символы с экрана. Символ попадает в первый стек, а его численное представление – во второй.

13. Создать два стека для символов. Максимальный размер стеков вводится с экрана. Создать функции для ввода и вывода элементов стека. Вводить символы с экрана. Прописные буквы попадают в первый стек, строчные – во второй, остальные символы пропускаются.

14. Создать два стека для символов. Максимальный размер стеков вводится с экрана. Создать функции для ввода и вывода элементов стека. Вводить символы с экрана. Прописные буквы преобразуются в строчные и попадают в первый стек, строчные преобразуются в прописные и попадают во второй, остальные символы пропускаются.

15. Создать стек для целых чисел. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Вводить символы с экрана. Числовое представление символа попадает в стек.

16. Создать стек для целых чисел. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Добавить 6 элементов. Удалить и вывести на экран 2 элемента. Задачу решить с использованием механизма указателей.

17. Создать стек для целых (положительных и отрицательных) чисел. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Ввести 6 элементов. При вводе чисел в стек попадают только отрицательные элементы. Вывести все элементы стека. Задачу решить с использованием механизма указателей.

18. Создать стек для целых чисел. Максимальный размер стека вводится с экрана. Создать функции для ввода, вывода и определения размера стека. Ввести с экрана 6 элементов. Удалить 2 элемента. Вывести размер стека. Задачу решить с использованием механизма указателей.

19. Создать стек для целых (положительных и отрицательных) чисел. Максимальный размер стека вводится с экрана. Создать функции для ввода, вывода и определения размера стека. Вводить с экрана числа, причем в стек должны добавляться поочередно положительные и отрицательные числа. Задачу решить с использованием механизма указателей.

20. Создать стек для символов. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Ввести эталонный символ. Вводить символы с экрана в стек до встречи эталонного. Вывести все элементы стека. Задачу решить с использованием механизма указателей.

21. Создать стек для символов. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Добавить символы с экрана в стек. После добавления 5-го символа перед добавлением следуюшего удалять элемент из стека. Задачу решить с использованием механизма указателей.

22. Создать стек для символов. Максимальный размер стека вводится с экрана. Создать функции для ввода, вывода и определения размера стека. Ввести эталонный символ. Вводить символы с экрана в стек до встречи эталонного. Вывести размер стека. Задачу решить с использованием механизма указателей.

23. Создать стек для символов. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Добавлять символы с экрана в стек. В случае совпадения вводимого символа с вершиной стека вытолкнуть его и распечатать ее. Задачу решить с использованием механизма указателей.

24. Создать стек для символов. Максимальный размер стека вводится с экрана. Создать функции для ввода, вывода и определения размера стека. Вводить символы с экрана в стек. В случае совпадения вводимого символа с вершиной стека вывести размер стека. Задачу решить с использованием механизма указателей.

25. Создать два стека для символов. Максимальный размер стеков вводится с экрана. Создать функции для ввода и вывода элементов стека. Вводить символы с экрана в первый стек. В случае совпадения вводимого символа с вершиной стека вводить во второй стек. Задачу решить с использованием механизма указателей.

26. Создать два стека для символов. Максимальный размер стеков вводится с экрана. Создать функции для ввода и вывода элементов стека. Вводить символы с экрана в стеки поочередно. Задачу решить с использованием механизма указателей.

27. Создать стек для символов и стек для чисел. Максимальный размер стеков вводится с экрана. Создать функции для ввода и вывода элементов стека. Вводить символы с экрана. Символ попадает в первый стек, а его численное представление – во второй. Задачу решить с использованием механизма указателей.

28. Создать два стека для символов. Максимальный размер стеков вводится с экрана. Создать функции для ввода и вывода элементов стека. Вводить символы с экрана. Прописные буквы попадают в первый стек, строчные – во второй, остальные символы пропускаются. Задачу решить с использованием механизма указателей.

29. Создать два стека для символов. Максимальный размер стеков вводится с экрана. Создать функции для ввода и вывода элементов стека. Вводить символы с экрана. Прописные буквы преобразуются в строчные и попадают в первый стек, строчные преобразуются в прописные и попадают во второй, остальные символы пропускаются. Задачу решить с использованием механизма указателей.

30. Создать стек для целых чисел. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Вводить символы с экрана. Числовое представление символа попадает в стек. Задачу решить с использованием механизма указателей.

Задание 2

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

2. Создать текстовый файл, содержащий текстовую информацию. Используя стек, создать другой текстовый файл, в котором слова были бы записаны в обратном порядке.

3. Создать текстовый файл, содержащий некоторую информацию. Используя стек, создать другой текстовый файл, в котором строки были бы записаны в обратном порядке.

4. Создать текстовые файлы, содержащие один текстовую, а другой числовую информацию (количество слов и чисел должно быть одинаковым). Используя стек, создать другой текстовый файл, в котором числа и слова чередовались и были бы записаны в обратном порядке.

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

6. Создать текстовые файлы, содержащие один текстовую, а другой числовую информацию (количество слов и чисел может быть неодинаковым). Используя стек, создать другой текстовый файл, в котором числа и слова чередовались и были бы записаны в обратном порядке ("лишние" числа или слова были бы записаны в конец файла).

7. В файле находится текст программы на Паскале. Используя стек, проверить правильность вложений циклов в этой программе.

8. В файле находится текст программы на Паскале. Используя стек, проверить правильность вложений операторных скобок (begin - end) в этой программе.

9. В файле записан текст, сбалансированный по круглым скобкам. Требуется для каждой пары соответствующих открывающей и закрывающей скобок напечатать номера их позиций в тексте, упорядочив пары номеров по возрастанию номеров позиций закрывающих скобок. Напимер, для текста a+(45-f(x)*(b-c)) на до напечатать 8 10, 12 16, 3 17.

10. В текстовом файле без ошибок записано логическое выражение следующего вида:

<лог.выр>::=true | false | <лог.выр> and <лог.выр> | <лог.выр> or <лог.выр>

11. Используя стек, вычислить значение этого выражения с учетом общепринятого приоритета операций.

12. Создать стек для символов. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Добавлять символы с экрана в стек. В случае совпадения вводимого символа с вершиной стека вытолкнуть его и распечатать ее.

13. Используя стек, напечатать содержимое текстового файла, выписывая литеры каждой его строки в обратном порядке.

 

14. Написать программу, проверяющую своевременность закрытия скобок в строке символов.

 

15. Используя стек, напечатать символы некоторой величины строкового типа в обратном порядке.

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

17. Запрограммировать стек-подобную структуру данных, в которой новый объект добавляется и удаляется с конца стека.

18. Запрограммировать стек-подобную структуру данных, в которой объект добавляется в начало, в удаляется с конца стека.

19. Запрограммировать стек-подобную структуру данных, в которой объект добавляется в конец, а удаляется с начала стека.

20. Запрограммировать стек-подобную структуру данных, в которой информация о книгах сортируется по возрастанию года издания.

21. Запрограммировать стек-подобную структуру данных, в которой информация о книгах сортируется по убыванию стоимости.

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

23. Написать программу копирования одного стека в другой

24. Написать программу замены одного стека другим.

25. написать программу обмена первыми половинами двух стеков

26. Дан стек, содержащий целые числа. Удалить из него все нулевые элементы.

27. Напишите программу формирования стека из 10 элементов и вывода его на экран.

28. Добавить в стек число n (значение n задается с клавиатуры).

29. Удалить из стека последний элемент. Программа должна вывести его значение.

30. Программа должна вывести значение последнего элемента, не удаляя его из стека.

 

 


1 | 2 |

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



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.)