You are on page 1of 11

public class CircularlyLinkedList<E> {

private class Node<E>{

private E element;

private Node<E> next;

public Node(E element, Node<E> next) {

this.element = element;

this.next = next;

public E getElement() {

return element;

public void setElement(E element) {

this.element = element;

public Node<E> getNext() {


return next;

public void setNext(Node<E> next) {

this.next = next;

private Node<E> tail;

private int size = 0;

public void addFirst(E element) {

if (this.size == 0) {

this.tail = new Node(element,null);

this.tail.setNext(tail);
this.size++;

}else {

Node n = new Node(element,this.tail.getNext());

this.tail.setNext(n);

this.size++;

public void addLast(E element) {

if (this.size == 0) {

this.tail = new Node(element,null);

this.tail.setNext(tail);

this.size++;

}else {

Node n = new Node(element,this.tail.getNext());


this.tail.setNext(n);

this.tail = n;

this.size++;

public E removeFirst() {

if(this.size == 0) return null;

if(this.size == 1) {

this.tail = null;

this.size--;

return this.tail.getElement();

}else {

Node<E> forDelete = this.tail.getNext();


this.tail.setNext(forDelete.getNext());

this.size--;

return forDelete.getElement();

public E removeLast() {

if(this.size == 0) return null;

Node<E> temp = this.tail;

if(this.size == 1) {

return this.removeFirst();

while(temp.getNext() != this.tail) {

temp = temp.getNext();
}

temp.next = this.tail.next;

this.tail = temp;

this.size--;

return temp.getElement();

public String toString() {

if (tail == null) return "()";

StringBuilder sb = new StringBuilder("(");

Node<E> walk = tail;

do {

walk = walk.getNext();

sb.append(walk.getElement());
if (walk != tail)

sb.append(", ");

} while (walk != tail);

sb.append(")");

return sb.toString();

public E game(E data) {

if(this.size < 3) {

System.out.println("Not Enough Players!!!!");

return data;

}else {

int r = (int)(Math.random()*this.size+1);

boolean b = new Random().nextBoolean();

if(b) {
Node<E> temp = this.tail;

for (int i = 0; i < r; i++) {

temp = temp.getNext();

E loser = temp.getElement();

temp.setElement(data);

return loser;

return data;

}
package mainPac;

public class main {

public static void main(String[] args) {

// TODO Auto-generated method stub

CircularlyLinkedList <Integer> array = new CircularlyLinkedList<>();

array.addFirst(1);

array.addFirst(2);

array.addFirst(3);

array.addLast(4);

System.out.println("all players: ");

System.out.println(array.toString());
System.out.println("-".repeat(20));

int it= 15;

System.out.println("it is: "+it);

int i = array.game(it);

System.out.println("-".repeat(20));

System.out.println("result: ");

System.out.println(array.toString());

System.out.println("-".repeat(12));

System.out.println("loser: "+i);

--
7ussein, Sl

You might also like