Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //by Pyjter&Pasierbix
- #include "stdafx.h"
- #include <conio.h>
- #include <Windows.h>
- struct Stack {
- int capacity;
- int size;
- int *data;
- };
- Stack *CreateStack(unsigned int Capacity) {
- if (Capacity > 0) {
- Stack *s = new Stack;
- s->capacity = Capacity;
- s->size = 0;
- s->data = new int[Capacity];
- return s;
- }
- return 0;
- }
- Stack *DestroyStack(Stack *s) {
- if (s==0) return 0;
- delete[]s->data;
- delete s;
- return 0;
- }
- bool IsEmpty(const Stack *s) {
- if (s==0) return false;
- if(s->size==0) return true;
- return false;
- }
- bool Push(Stack *s, int value) {
- if (s->size < s->capacity) {
- s->data[s->size] = value;
- s->size++;
- return true;
- }
- return false;
- }
- int Pop(Stack *s) {
- if (s->size > 0) {
- return s->data[--s->size];
- }
- return 0;
- }
- int main() {
- int wielkosc, wartosc,wybor;
- printf("Podaj wielkosc stosu: \n");
- scanf("%d",&wielkosc);
- Stack *s = CreateStack(wielkosc);
- printf("Wielkosc stosu to : %d\n",wielkosc);
- do{
- system ("cls");
- printf("Co bys ciciol zrobic?\n");
- printf("1.Dodej na stos\n");
- printf("2.Sciagnij ze stosu\n");
- printf("3.Wyswietl stos\n");
- printf("4.Czy stos je pusty?\n");
- printf("5.Zdupiom !\n");
- scanf("%d",&wybor);
- switch(wybor)
- {
- case 1:
- if (s->size >= s->capacity)
- {
- printf("Tys je gupi! Juz placu na stosie ni ma!");getch();break;
- }
- else{ printf("Podaj co chcesz dodac na stos: ");
- scanf("%d",&wartosc);
- Push(s, wartosc);
- break;}
- case 2:
- printf("%d\n", Pop(s));
- getch();
- break;
- case 3:
- for(int i=s->size;i>0;i--)
- {
- printf("%d\n", s->data[i-1]);
- }
- getch();
- break;
- case 4:
- if(IsEmpty(s))printf("Stos jest pusty!");
- else printf("Stos nie jest pusty!");
- getch();
- break;
- case 5:
- s = DestroyStack(s);
- return 0;
- case 6:
- exit (1);
- }
- }while(true);
- getch();
- return 0;
- }
- //by Pyjter&Pasierbix
Advertisement