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

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

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

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

textual
#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;
}

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


СОХРАНИТЬ ССЫЛКУ