Riešenia (skupina D, 3. týždeň)

Praktické cvičenie

public class SpajanyZoznam {

        /**
         * Sukromna trieda reprezentujuca jeden uzol spajaneho zoznamu
         */

        public static class Uzol {
                int hodnota;
                Uzol dalsi;
        }

        /**
         * Referencia na prvy uzol spajaneho zoznamu
         */

        private Uzol prvy = null;


        public Uzol vratITy(int index) {
                Uzol aktualny = prvy;
                int pozicia = 0;

                while (aktualny !=null) {
                                if(pozicia==index) {
                                        return aktualny;
                                }
                        aktualny = aktualny.dalsi;
                                pozicia++;
                        }

                return null;
        }

        public int get(int index) {
                return vratITy(index).hodnota;
        }

        public void set(int index, int value){
                this.vratITy(index).hodnota = value;
        }

        public void add(int value) {
          Uzol novy = new Uzol();
          novy.hodnota = value;
          novy.dalsi = null;

          Uzol aktualny = prvy;

          if(prvy == null) {
                  prvy = novy;
                  return;
          }

          while(aktualny.dalsi!=null) {
                  aktualny = aktualny.dalsi;
          }

          aktualny.dalsi = novy;


  }

        public void add(int index, int value) {

        }

        public void remove(int index) {

        }


        /**
         * Prida novu hodnotu na zaciatok spajaneho zoznamu
         *
         * @param hodnota
         *            pridavana hodnota
         */

//        public void pridajNaZaciatok(int hodnota) {
//                Uzol pridavany = new Uzol();
//                pridavany.hodnota = hodnota;
//                pridavany.dalsi = prvy;
//                prvy = pridavany;
//        }
//
//        @Override
//        public String toString() {
//                String vysledok = "[";
//                Uzol aktualny = prvy;
//                while (aktualny != null) {
//                        if (aktualny != prvy)
//                                vysledok += ", ";
//
//                        vysledok += aktualny.hodnota;
//                        aktualny = aktualny.dalsi;
//                }
//
//                return vysledok + "]";
//        }
//
//        /**
//         * Vrati sucet hodnot ulozenych v spajanom zozname
//         */
//        public int sucet() {
//                // Referencia na uzol zoznamu, na ktorom sa prave nachadzame
//                Uzol aktualny = prvy;
//                // Premenna, v ktorej akumulujeme sucet
//                int vysledok = 0;
//                // Kym sme na nejakom uzle ...
//                while (aktualny != null) {
//                        // Priratame hodnotu uzla
//                        vysledok += aktualny.hodnota;
//                        // Presunieme sa na dalsi uzol v zozname
//                        aktualny = aktualny.dalsi;
//                }
//
//                return vysledok;
//        }
//
//        private Uzol vratITy(int index) {
//                Uzol aktualny = prvy;
//                int pozicia = 0;
//                while (aktualny != null) {
//                        if (pozicia == index) {
//                                return aktualny;
//                        }
//
//                        aktualny = aktualny.dalsi;
//                        pozicia++;
//                }
//
//                return null;
//        }
//
//        public int get(int index) {
//                Uzol ity = vratITy(index);
//                if (ity != null)
//                        return ity.hodnota;
//
//                throw new IndexOutOfBoundsException();
//        }
//
//        public void set(int index, int value) {
//                Uzol ity = vratITy(index);
//                if (ity != null) {
//                        ity.hodnota = value;
//                } else
//                        throw new IndexOutOfBoundsException();
//        }
//
//        public void add(int value) {
//                Uzol novy = new Uzol();
//                novy.hodnota = value;
//
//                if (prvy == null) {
//                        prvy = novy;
//                        return;
//                }
//
//                Uzol aktualny = prvy;
//                while (aktualny.dalsi != null) {
//                        aktualny = aktualny.dalsi;
//                }
//
//                aktualny.dalsi = novy;
//        }
//
//        public void add(int index, int value) {
//                if (index == 0) {
//                        pridajNaZaciatok(value);
//                        return;
//                }
//
//                Uzol novy = new Uzol();
//                novy.hodnota = value;
//
//                Uzol predchadzajuci = vratITy(index - 1);
//                novy.dalsi = predchadzajuci.dalsi;
//                predchadzajuci.dalsi = novy;
//        }
//
//        public void remove(int index) {
//                try {
//                        if (index == 0) {
//                                prvy = prvy.dalsi;
//                        } else {
//                                Uzol predosly = vratITy(index - 1);
//                                predosly.dalsi = predosly.dalsi.dalsi;
//                        }
//                } catch (Exception e) {
//                        throw new IndexOutOfBoundsException();
//                }
//        }
}

public class Spustac {

        /**
         * @param args
         */

        public static void main(String[] args) {
                // TODO Auto-generated method stub
                SpajanyZoznam sz = new SpajanyZoznam();
                sz.add(2);
                sz.add(3);
                sz.add(4);

//              System.out.println(sz.vratITy(2).hodnota);
//              System.out.println(sz.get(2));
                sz.add(5);

                System.out.println(sz.vratITy(0).hodnota);
                System.out.println(sz.vratITy(1).hodnota);
                System.out.println(sz.vratITy(2).hodnota);
                System.out.println(sz.vratITy(3).hodnota);
        }

}
 
public class Zasobnik {

        private static boolean spravneOzatvorkovany(String string) {
                if (string.length() == 0) {
                        return true;
                }
                int pocetZatvoriek = 0;

                for (int i = 0; i < string.length(); i++) {

                        char znak = string.charAt(i);
                        if (znak == '(') {
                                pocetZatvoriek++;
                        } else {
                                if (znak == ')') {
                                        pocetZatvoriek--;
                                }
                        }
                        if (pocetZatvoriek < 0) {
                                return false;
                        }


                }
                if (pocetZatvoriek == 0) {
                        return true;
                }
                return false;
        }

        public static void main(String[] args) {
                System.out.println("tieto budu true");
                System.out.println(spravneOzatvorkovany("(())()"));
                System.out.println(spravneOzatvorkovany(""));
                System.out.println("tieto budu false");
                System.out.println(spravneOzatvorkovany("(()"));
                System.out.println(spravneOzatvorkovany(")"));
                System.out.println(spravneOzatvorkovany("(())("));
                System.out.println(spravneOzatvorkovany(")("));
        }

}