Реализовать простой стек, с функциями добавления и удаления элементов - C (СИ)

Формулировка задачи:

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


textual

Код к задаче: «Реализовать простой стек, с функциями добавления и удаления элементов - C (СИ)»

#include <stdlib.h>
#include <stdio.h>
 
#define STACK_MAX_CAPACITY 200
 
struct Stack_of_char {  
  char data[STACK_MAX_CAPACITY]; 
  int dest_idx;                  
};
 
void stack_of_char_init(struct Stack_of_char* st) {
  st->dest_idx = 0;
}
 
int stack_of_char_push(struct Stack_of_char* st, char ch) {  
  if(st->dest_idx == STACK_MAX_CAPACITY) 
    return 0;
    
  st->data[st->dest_idx] = ch;
  ++st->dest_idx;
  
  return 1;
}
 
int stack_of_char_pop(struct Stack_of_char* st, char* pch) {
  if(st->dest_idx == 0)
    return 0;  
  
  --st->dest_idx;
  if(pch != NULL)
    *pch = st->data[st->dest_idx];      
  
  return 1;
}
 
int stack_of_char_empty(const struct Stack_of_char* st) {
  return st->dest_idx == 0;
}
 
int main(void) {
  char ch;
  struct Stack_of_char st;
  
  stack_of_char_init(&st);    
  for(ch = 'z'; ch >= 'a'; --ch)
    stack_of_char_push(&st, ch);
  
  while(!stack_of_char_empty(&st)) {
    stack_of_char_pop(&st, &ch);
    putchar(ch);
  }
  putchar('\n');
  
  return EXIT_SUCCESS;
}
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.


СДЕЛАЙТЕ РЕПОСТ

6   голосов, оценка 3.667 из 5

Источник