Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
29
Добавлен:
19.04.2015
Размер:
1.06 Кб
Скачать
#include <stdlib.h>
#include <stdio.h>

typedef struct st {
  int info;
  struct st *prev;
} STACK;

void push(STACK **s, int item); // поместить item в стек *s
int pop(STACK **s); // достать эллемент из стека
int peek(STACK *s); // посмотреть на верхний элемент

int main(){
  STACK *head = NULL;
  int i,value;
  for (i = 0; i< 10; i++){
    printf("Vvedite element %d:", i);
    scanf("%d",&value);
    push(&head,value);
  }
  while (head)
    printf("%d ", pop(&head));
  return 0;
}

void push(STACK **s, int item){
  STACK *new_item;
  new_item = (STACK*)malloc( sizeof (STACK) ); //выделяем память под новый элемент стека
  new_item -> info = item; // присваиваем значение новому элементу стека
  new_item -> prev = *s; // присоединяем новый элемент на вершину стека
  *s = new_item; // изменяем значение указателя на вершину стека
}

int pop(STACK **s){
  STACK * remove_it = *s;
  int value = peek(remove_it);
  *s = (**s).prev;
  free(remove_it);
  return value;
}

int peek(STACK *s){
  return s->info;
}

Соседние файлы в папке 3_mod