abC primeri - izzivi/linsezsklad.c

linsezsklad.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <stdio.h>
#include <stdlib.h>

// element seznama
struct element {
  int vrednost;                
  struct element *naslednji;   
};

// sklad, implementiran s seznamom
struct element *sklad;

void init() {
  sklad = NULL;
}

int is_empty() {
  return (sklad==NULL);
}

void push(int a) {
  struct element *nov;
  nov = (struct element*) malloc(sizeof(struct element));

  nov->vrednost = a;
  nov -> naslednji = sklad;
  sklad = nov;
}

int pop() {
  struct element *tmp;

  if (sklad==NULL) 
    printf("Sklad je prazen.\n");
  else {
    int a = sklad->vrednost;
    tmp = sklad;
    sklad = sklad->naslednji;
    free(tmp);
    return a;
  }
}

    Nazaj...