Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package aiz.list;
- public class ListOne<T> implements IList<T>{
- ElemOne<T> first;
- ElemOne<T> last;
- int count = 0;
- @Override
- public void addFirst(T newData) {
- ElemOne<T> f = new ElemOne(newData);
- f.setNext(first);
- count++;
- first = f;
- }
- @Override
- public void addLast(T newData) {
- ElemOne<T> f;
- count++;
- f = new ElemOne(newData);
- if (first == null)
- {
- first = new ElemOne(newData);
- return;
- }
- f.setNext(null);
- last = first;
- while (last.getNext() != null)
- {
- last = last.getNext();
- }
- last.setNext(f);
- }
- @Override
- public void addAtPosition(T newData, int position) throws ListException {
- if (position > size())
- {
- throw new ListException("Lista jest za mala");
- } else
- {
- count++;
- ElemOne<T> l = first;
- ElemOne<T> prev = first;
- ElemOne<T> nw;
- nw = new ElemOne(newData);
- if (position == 0)
- {
- l = new ElemOne(newData);
- l.setNext(first);
- first = l;
- } else
- {
- for(int i = 0; i < position; i++)
- {
- prev = prev.getNext();
- }
- for(int i = 0; i < position; i++)
- {
- l = l.getNext();
- }
- nw.setNext(l);
- prev.setNext(nw);
- }
- }
- }
- @Override
- public int size() {
- return count;
- }
- @Override
- public T get(int position) throws ListException {
- ElemOne<T> f = first;
- for (int i = 1; i < position; i++) {
- f = f.getNext();
- }
- return f.getData();
- }
- @Override
- public T removeFirst() throws ListException {
- if (first == null) {
- first = first.getNext();
- count--;
- }
- return first.getData();
- }
- @Override
- public T removeLast() throws ListException {
- count--;
- for (last = this.first; last.getNext().getNext() != null; last = last.getNext())
- {
- last.setNext(null);
- }
- return first.getData();}
- @Override
- public T remove(int position) throws ListException {
- if (position > size())
- {
- throw new ListException("Lista jest za mala");
- } else
- {
- ElemOne<T> l = first;
- ElemOne<T> prev = first;
- if (position == 0)
- {
- first = first.getNext();
- } else
- {
- for (int i = 1; i < position - 1; i++)
- {
- prev = prev.getNext();
- }
- for (int i = 1; i < position; i++)
- {
- l = l.getNext();
- }
- prev.setNext(l.getNext());
- l = l.getNext();
- }
- return l.getData();
- }
- }
- @Override
- public int find(T dataToFind) {
- int licz = 0;
- ElemOne<T> f = first;
- try {
- while (f != null && f.getData() != dataToFind)
- {
- f = f.getNext();
- licz++;
- }
- if (f.getData() == dataToFind)
- {
- return licz;
- }
- } catch (NullPointerException e)
- {
- System.out.println("Nie ma takiego elementu");
- }
- return -1;
- }
- @Override
- public boolean contains(T data)
- {
- ElemOne<T> f = first;
- if (f.getData() == data)
- {
- return true;
- }
- try {
- while (f != null && f.getData() != data) {
- f = f.getNext();
- if (f.getData() == data) {
- return true;
- }
- }
- } catch (NullPointerException e) {
- System.out.println("nie ma takiego numeru");
- }
- return false;
- }
- @Override
- public void print() {
- ElemOne<T> f = first;
- while (f != null)
- {
- System.out.print(f.getData() + " ");
- f = f.getNext();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement