Kod: Zaznacz cały
#include<stdio.h>
#include<stdlib.h>
struct stos
{
int klucz;
struct stos *nast;
};
typedef struct stos element;
typedef element *lista;
//funkcja dodajaca na stos
void push(lista *e,int k)
{
lista new;
new=(lista)malloc(sizeof(element));
new->klucz=k;
new->nast=*e;
*e=new;
}
//funkcja pokazujaca stan stosu
void peek(lista e)
{
while (e!=NULL){
printf("%d
",e->klucz);
e=e->nast;
}
}
//funkcja usuwajaca ze stosu
int pop( lista *e) {
lista p;
int k;
if (*e!=0){
p=*e;
k=(*e)->klucz;
*e=(*e)->nast;
free(p);
p=0;
return k;
}
return -1;
}
//glowny program
int main()
{
lista li;
li=NULL;
printf("Dodawanie na stos liczb 1 2 3 4 5:
");
push(&li,1);
push(&li,2);
push(&li,3);
push(&li,4);
push(&li,5);
peek(li);
printf("Usuwanie ze stosu:
");
pop(&li);
peek(li);
return 0;
}