Professional Documents
Culture Documents
и купови (stack)
Поврзани листи
next
Предности на поврзаните листи:
next n t h
Креирање на прв јазол
n = new node; // дава наредба на
покажувачот n да покаже кон нов
креиран јазол n
n
1 2
h next next
t
Креирање на последен јазол
n = new node; // дава наредба на покажувачот n да покаже кон нов креиран јазол
t -> next = n; // дава наредба на покажувачот t да пристапи кон next делот од јазолот и
дава наредба да покажува каде што покажува n
n -> next = NULL; // дава наредба next да “покажува“ кон NULL, т.е. да го заврши
синџирот
n
1 2 3
h next next next
t
Целосен код
#include <iostream> t=n;
using namespace std; h=n;
int main (){ n= new node;
struct node { n->data=2;
int data; t->next=n;
node *next; t = t ->next;
}; n= new node;
node *n; n->data=3;
node *t; t->next=n;
node *h; n->next=NULL;
n = new node;
n->data=1; return 0;
}
Куп (stack)
Куп е апстрактен тип на податоци со ограничен (предефиниран) капацитет.
Тоа е едноставна структура на податоци која овозможува додавање и
отстранување на елементи во одреден редослед. Секој пат кога ќе се додаде
елемент, тој оди на врвот на купот и елементот што може да се отстрани е
елементот што е на врвот на купот.
Top
4 Покажувач на купот (stack pointer) -
секогаш покажува кон врвот
3
2
1
Bottom
Функции на купот
Купот работи според LIFO (Last In First Out) т.е. кој последен влегува прв
излегува, односно секој пат кога ќе се додаде елемент, тој оди на врвот на
купот и елементот што може да се отстрани е елементот што е на врвот на
купот.
Push(1) 1
3
Push(3) 1
5
Push(5) 3
1
3
Pop()
1
За да креираме куп (stack) мора прво да ја вклучиме библиотеката stack
● #include <stack>
● stack <int> s1; // креира куп со име s1 и тип на купот е int (integer)
● s1.push(3);
Пример
#include <iostream> while ( !mystack.empty() ) // се додека На екран печати:
купот не е празен: ... Stack size: 3
#include <stack> // библиотека stack 5
{ 3
using namespace std; 0
cout<<mystack.top()<<endl; // го печати
int main (){ горниот елемент од купот
return 0; }
Пр. Корисникот внесува колку елементи да бидат избришани
#include <iostream> cout<<"Vnesi kolku elementi sakas da izbrises "; На екран печати:
int n, i; }
stack<int>mystack; while(!mystack.empty()){
mystack.push(0); mystack.pop();
mystack.push(7); }
mystack.push(4); return 0; }
mystack.push(3);