Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:2K_programuvanna / Практика / 3_mod / mod3 / 14_1
.c#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;
}