package lt.bit.bitstack; /* Steko pliusai 1. Labai greitas elementų įdėjimas, išėmimas 2. Geresnis atminties paskirstymas 3. Greitas elementų paėmimas iš eilės Steko trukumai 1. Lėtas atsitiktinių elementų paėmimas */ //T - kokio tipo duomenis talpinsime į steką (parametrizuota klasė) public class BitStack { //Steko pradžios elementas private Item s=null; //Metodas kuris patikrina ar stekas yra tuščias public boolean empty(){ return (s==null); //Jei s==null gražinamas true, priešingu atveju false } //Į steko viršų įtraukiame naują elementą public void push(T data){ Item tmp=new Item<>(data); //Susikuriame naują objektą laikiname kitnamąjame tmp.next=s; //Laikino kintamojo next atributą priskiriame s adresui s=tmp; //S kitamąjį priskiriame tmp adresui } //Iš steko paimame viršutinį elemenetą ir jį sugražiname public T pop(){ if (empty()) return null; //Jei stekas tuščias, gražiname null T tmp=s.getData(); //Išsisaugome duomenis į laikiną kintamąjį s=s.next; //Perstumiame rodyklę return tmp; //Grąžiname duomenis } // Grąžinamas paskutinis įdėtas elementas, tačiau jis nepašalinamas iš klasės public T peek(){ if (empty()) return null; return s.getData(); } //Steke ieškomas elementas value, jei randame, grąžinama true, jei nerandama grąžinama false. public boolean search(T value){ Item tmp=s; while (tmp!=null){ if (tmp.getData().equals(value)) return true; tmp=tmp.next; } return false; } public T get(int n){ Item tmp=s; for (int i=0; i tmp=s; for (int i=0; i