220 likes | 536 Views
Strukture podataka i algoritmi. Linearne strukture. Sadržaj. Linearne strukture St e k Red Lista Definicija preko ATP Implementacija. Linearne strukture. Linearna uređenost Sekvenca elemenata Jedan prethodnik, jedan sledbenik Vrste linearnih struktura
E N D
Strukture podataka i algoritmi Linearne strukture
Sadržaj • Linearne strukture • Stek • Red • Lista • Definicija preko ATP • Implementacija
Linearne strukture • Linearna uređenost • Sekvenca elemenata • Jedan prethodnik, jedan sledbenik • Vrste linearnih struktura • Razlikuju se po mestu (lokaciji) gde se vrši ubacivanje i izbacivanje elemenata • Stek • ubaci i izbaci sa istog kraja • Red • ubaci na jednom, izbaci sa drugog • Lista • ubaci/izbaci bilo gde
Stek (stack) • LIFO struktura (Last In First Out) • Primer: Držač za Pez bombone
Stek (stack) • Osnovne operacije • Ubacivanje (Push) • Izbacivanje (Pop) • Ostale operacije • Vrati vrh (Peek) • Prazan stek • Broj elemenata • Primeri
Stek (stack) • Definicija preko ATP public interface IStack { booleanisEmpty(); void Push(int obj); int Pop(); int Peek(); }
Red (queue) • FIFO struktura (First In First Out) • Primer: Red u prodavnici
Red (queue) • Osnovne operacije • Ubacivanje (Enqueue) • Izbacivanje (Dequeue) • Ostale operacije • Broj elemenata • Prazan red
Red (queue) • Definicija preko ATP public interface IQueue { booleanisEmpty(); voidEnqueue(int obj); intDequeue(); int Peek(); }
Lista (list) • Sekvenca elemenata istog tipa • Element (čvor) u sebi čuva vrednost (objekat) • Operacije • Ubacivanje • Izbacivanje • Broj elemenata • Brisanje svih elemenata
Lista (list) • Definicija preko ATP public interface ILinkedList { void InsertBefore(int Data); void InsertAfter(int Data); int Remove(); boolean MovePrevious(); boolean MoveNext(); void MoveTo(int index); void Clear(); int Count(); }
12 37 45 2 top Stek (stack) • Kao statička struktura • Primer:
12 12 37 37 45 45 2 2 17 top top Stek (stack) • Ubacivanje pre nakon
12 12 37 37 45 45 2 top 2 top Stek (stack) • Izbacivanje pre nakon
Stek (stack) publicclass ArrayStack implements IStack { protectedint[] data; protectedint top; public ArrayStack(int capacity) { data = newint[capacity]; top = -1; } publicboolean IsEmpty() { return top == -1; } nastavak na sledećoj strani
nastavak sa prethodne strane • publicvoid Push(int obj) • { • if(top < data.length - 1) • data[++top] = obj; • } • publicint Pop() • { • if(IsEmpty()) • return Integer.MIN_INT; • int Obj = data[top--]; • return Obj; • } • publicint Peek() • { • if(IsEmpty()) • return Integer.MIN_INT; • return data[top]; • } • }
top 45 2 37 Stak (stack) • Kao dinamička struktura
top top 45 45 2 2 37 37 Stak (stack) • Ubacivanje pre nakon
top top 45 2 2 37 37 Stak (stack) • Izbacivanje pre nakon
Stak (stack) import DataStructures.Interfaces.*; import DataStructures.LinearStructures.Lists.*; publicclass LinkedListStack implements IStack { protected LinkedList myList; public LinkedListStack() { myList = new LinkedList(); } publicboolean IsEmpty() { return myList.IsEmpty(); } nastavak na sledećoj strani
nastavak sa prethodne strane publicint Pop() { return myList.Remove(); } publicvoid Push(int obj) { myList.Add(obj); } publicint Peek() { return myList.Peek(); } }