Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //TO DO
- //IMPLEMENTIRAJ ITERATOR.
- /*
- Забелешка: несмеат нови листи да се креираат и несмее бришење на елементите во листата.
- +Работа со јазлите
- +Тој што ќе ја реши нека ја постне во групава да ја видат сите
- +SLL
- */
- class SLLNode<T>{
- T data;
- SLLNode<T> next;
- public SLLNode(T data, SLLNode<T> next) {
- this.data = data;
- this.next = next;
- }
- }
- class SLL<T> {
- int totalElements;
- SLLNode<T> first;
- SLL() {
- first = null;
- totalElements = 0;
- }
- public void insertFirst(T data) {
- if (first == null) {
- first = new SLLNode<>(data, null);
- totalElements++;
- } else {
- first = new SLLNode<>(data, first);
- totalElements++;
- }
- }
- public void insertLast(T data) {
- if (first == null)
- insertFirst(data);
- else {
- SLLNode<T> iter = first;
- while (iter.next != null)
- iter = iter.next;
- iter.next = new SLLNode<>(data, null);
- totalElements++;
- }
- }
- public int getTotalElements() {
- return totalElements;
- }
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- SLLNode<T> iter = first;
- while (iter != null) {
- sb.append(iter.data);
- if (iter.next != null)
- sb.append(", ");
- iter = iter.next;
- }
- return sb.toString();
- }
- public static String alternate(SLL<Integer> lista) {
- SLLNode<Integer> iter = lista.first;
- StringBuilder sb = new StringBuilder();
- int end = lista.getTotalElements() - 1;
- int start = 0;
- int current = 0;
- boolean flag = true;
- //
- for (int i = 0; i < lista.getTotalElements(); i++) {
- iter = lista.first;
- current = 0;
- for (int j = 0; j < lista.getTotalElements(); j++) {
- if (current == start && flag) {
- sb.append(iter.data);
- start++;
- flag = false;
- break;
- } else if (end == current) {
- sb.append(iter.data);
- end--;
- flag = true;
- break;
- }
- iter = iter.next;
- current++;
- }// za end proverka
- if ( (end<start))
- break;
- sb.append(", ");
- }
- return sb.toString();
- }
- }
- public class SLLAlternatePrint {
- public static void main(String [] args){
- SLL<Integer> lista = new SLL<>();
- SLL<Integer> lista2 = new SLL<>();
- for(int i =0;i<15;i++){
- lista.insertLast(i);
- }
- System.out.println(lista.getTotalElements()); //granicen test, neparen broj elementi
- for(int i =0;i<19;i+=2){
- lista2.insertLast(i);
- }
- System.out.println(lista2.getTotalElements()); //paren
- System.out.println(lista.toString());
- System.out.println(lista.alternate(lista));
- System.out.println(lista2.toString());
- System.out.println(lista2.alternate(lista2));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement