Advertisement
ChrisPetrovski

Java zadaca

Nov 17th, 2018
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.38 KB | None | 0 0
  1. //TO DO
  2. //IMPLEMENTIRAJ ITERATOR.
  3. /*
  4. Забелешка: несмеат нови листи да се креираат и несмее бришење на елементите во листата.
  5. +Работа со јазлите
  6. +Тој што ќе ја реши нека ја постне во групава да ја видат сите
  7. +SLL
  8.  */
  9. class SLLNode<T>{
  10.     T data;
  11.     SLLNode<T> next;
  12.     public SLLNode(T data, SLLNode<T> next) {
  13.         this.data = data;
  14.         this.next = next;
  15.     }
  16. }
  17. class SLL<T> {
  18.     int totalElements;
  19.     SLLNode<T> first;
  20.     SLL() {
  21.         first = null;
  22.         totalElements = 0;
  23.     }
  24.     public void insertFirst(T data) {
  25.         if (first == null) {
  26.             first = new SLLNode<>(data, null);
  27.             totalElements++;
  28.         } else {
  29.             first = new SLLNode<>(data, first);
  30.             totalElements++;
  31.         }
  32.     }
  33.     public void insertLast(T data) {
  34.         if (first == null)
  35.             insertFirst(data);
  36.         else {
  37.             SLLNode<T> iter = first;
  38.             while (iter.next != null)
  39.                 iter = iter.next;
  40.             iter.next = new SLLNode<>(data, null);
  41.             totalElements++;
  42.         }
  43.     }
  44.     public int getTotalElements() {
  45.         return totalElements;
  46.     }
  47.     @Override
  48.     public String toString() {
  49.         StringBuilder sb = new StringBuilder();
  50.         SLLNode<T> iter = first;
  51.         while (iter != null) {
  52.             sb.append(iter.data);
  53.             if (iter.next != null)
  54.                 sb.append(", ");
  55.             iter = iter.next;
  56.  
  57.         }
  58.         return sb.toString();
  59.     }
  60.     public static String alternate(SLL<Integer> lista) {
  61.         SLLNode<Integer> iter = lista.first;
  62.         StringBuilder sb = new StringBuilder();
  63.         int end = lista.getTotalElements() - 1;
  64.         int start = 0;
  65.         int current = 0;
  66.         boolean flag = true;
  67.         //
  68.         for (int i = 0; i < lista.getTotalElements(); i++) {
  69.             iter = lista.first;
  70.             current = 0;
  71.             for (int j = 0; j < lista.getTotalElements(); j++) {
  72.                 if (current == start && flag) {
  73.                     sb.append(iter.data);
  74.                     start++;
  75.                     flag = false;
  76.                     break;
  77.                 } else if (end == current) {
  78.                     sb.append(iter.data);
  79.                     end--;
  80.                     flag = true;
  81.                     break;
  82.  
  83.                 }
  84.                 iter = iter.next;
  85.                 current++;
  86.             }// za end proverka
  87.             if ( (end<start))
  88.                 break;
  89.             sb.append(", ");
  90.         }
  91.         return sb.toString();
  92.     }
  93. }
  94. public class SLLAlternatePrint {
  95.     public static void main(String [] args){
  96.         SLL<Integer> lista = new SLL<>();
  97.         SLL<Integer> lista2 = new SLL<>();
  98.         for(int i =0;i<15;i++){
  99.             lista.insertLast(i);
  100.         }
  101.         System.out.println(lista.getTotalElements()); //granicen test, neparen broj elementi
  102.         for(int i =0;i<19;i+=2){
  103.             lista2.insertLast(i);
  104.         }
  105.         System.out.println(lista2.getTotalElements()); //paren
  106.         System.out.println(lista.toString());
  107.         System.out.println(lista.alternate(lista));
  108.         System.out.println(lista2.toString());
  109.         System.out.println(lista2.alternate(lista2));
  110.     }
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement