•  Ashall  
    Wydział: W-8 IZ
    Rok studiów: 2

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • Mój problem jest prosty - nie potrafię w javie utworzyć konstrukcji, która będzie listą cykliczną. Symulację takowej listy łatwo zrobić. Chciałbym po prostu mieć gotowe metody operujace, np. Dodawanie na koniec, usuwanie bieżącego elementu.
    Albo gotowy program, wtedy obejrzę jak to ma wyglądać w praktyce.
    d41d8cd98f00b204e9800998ecf8427e
  • brysk  
    Wydział: W-8 IZ
    Rok studiów: 1

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • Kod:

    public class Lista
    {
        private Element _poczatek;
        private int _size;
       
        public Lista(){
            _poczatek = new Element();
            _size = 0;
        }
       
        public int size(){
            return _size;
        }
       
        public boolean pusta(){
            return _poczatek == null;
        }

        public void dodaj(Object value){
            if(_size > 0){
               
                _poczatek.setNext(new Element(value, _poczatek.getNext()));
                _poczatek = _poczatek.getNext();
            }
            else{
                _poczatek.setValue(new Element(value));
                _poczatek.setNext(_poczatek);
            }
           _size++;
        }
       
        public Object premier(int p){
            while(_size > 1){
                przesun(p);
                usun();
            }
                return _poczatek.getValue();
            }
           
           
        public Object usun(){
            if(_size == 0) return null;
            Object tmp = _poczatek.getNext().getValue();
            _poczatek.setNext(_poczatek.getNext().getNext());
            _size--;
            return tmp;
        }
       
        public void przesun(int k){
            if (_size > 0){
            for(int i = 1 ; i < k ; i++)
                _poczatek = _poczatek.getNext();
            }
        }
       
        public void wyswietl(){
           
           for (int i = 0 ; i < _size ; i++){
               _poczatek = _poczatek.getNext();
               System.out.println(_poczatek.getValue());
           }
        }
         
           
    }


    d41d8cd98f00b204e9800998ecf8427e
  • romson89  
    absolwent
    Wydział: W-8 IZ
    Rok studiów: 5

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • dam coś od siebie:

    Kod:
    package Queue;

    public interface MyQueue<E>
    {
        public boolean isEmpty();
        public boolean isFull();
        public void enqueue(E x);
        public E dequeue() throws EmptyQueueException;
        public E first();
        public String toString();
    }

    implementacja tablicowa:

    package Queue;

    @SuppressWarnings("unchecked")
    public class QueueArray<E> implements MyQueue
    {
        private E[] _array;
        private int _size;
        private int _first;
        private int _last;
       
        public QueueArray(int max)
        {
            _array = (E[]) new Object[max];
            _size = 0;
            _first = 0;
            _last = 0;
        }
       
        public boolean isEmpty()
        {return (_size == 0) && (_array.length != 0);}
       
        public boolean isFull()
        { return _size == _array.length; }
       
        public void enqueue(Object x)
        {
            if(isEmpty())
            {
                _array[_size++] = (E) x;
            }
            else
            {
                if(!isFull())
                {
                    if(_last < _array.length - 1)
                        _array[++_last] = (E) x;
                    else
                        _array[(_last = 0)] = (E) x;
                       
                    _size++;
                }
            }
        }
       
        public E dequeue() throws EmptyQueueException
        {
            if(isEmpty()) throw new EmptyQueueException();
           
            E x = _array[_first++];
            if(_first == _array.length)
                _first = 0;
           
            if(_size == 1)
            {
                _last = _first;
                _array[_first] = null;
            }
                 
            --_size;
            return x;
        }
       
        public E first()
        { return _array[_first]; }
       
        public String toString()
        {
            String s ="";
           
            if(_size == 0)
                s = "Kolejka pusta, nie mam co drukowac!";
            else
                if(_first <= _last)
                    for(int i=_first; i<=_last; i++)
                        s += _array[i]+", ";
                else
                {   
                    for(int i=_first; i<_array.length; i++)
                        s += _array[i]+", ";
                    for(int i=0; i<=_last; i++)
                        s += _array[i]+", ";
                }
           
            return s;
        }
       
    }

    implementacja listowa:

    package Queue;

    @SuppressWarnings("unchecked")
    public class QueuePtr<E> implements MyQueue
    {
        private Node _head;
        private Node _tail;
       
        public QueuePtr()
        { _tail = _head = new Node(null); }
       
        public QueuePtr(E value)
        { _tail = _head = new Node(value);}
       
        private class Node
        {
            E _value;
            Node _next;
           
            public Node(E value)
            {
                _value = value;
                _next = null;
            }
           
            public Node(E value, Node next)
            {
                _value = value;
                _next = next;
            }
        }

        public boolean isEmpty()
        { return _head._next == null; }
       
        public boolean isFull()
        { return false; }
       
        public void enqueue(Object x)
        { _tail = _tail._next = new Node((E) x); }
       
        public E dequeue() throws EmptyQueueException
        {
            if(_head._next == null) throw new EmptyQueueException();
           
            E val = _head._next._value;
            _head._next = _head._next._next;
            if(_head._next == null) _tail = _head;
           
            return val;
        }
       
        public E first()
        { return _head._next._value; }
       
        public String toString()
        {
            String s = "";
           
            try
            {
                Node el = _head._next;
                do
                    s += el._value+", ";
                    while((el = el._next) != null);
             } catch(NullPointerException e)
                {s = "Kolejka jest pusta. Nie mam nic do wydrukowania!";}
            return s;
        }
    }
    d41d8cd98f00b204e9800998ecf8427e

Powered by phpBB modified by Przemo © 2003 phpBB Group. Then, after many years modified again, this time by Piotrek © 2014
Strona wygenerowana w 23,7ms. Zapytań do SQL: 14