package dataStructures
.list
;
public class MySingleCircularNode {
private int element
;
private MySingleCircularNode nextNode
;
private MySingleCircularNode beginNode
=this;
public MySingleCircularNode(int element
) {
this.element
=element
;
this.nextNode
=this;
}
public void insert(int element
,MySingleCircularNode node
) {
MySingleCircularNode currentNode
=this;
while (currentNode
!=null
) {
if (currentNode
.element
==element
) {
node
=new MySingleCircularNode(node
.element
);
MySingleCircularNode nextSingleNode
=currentNode
.nextNode
;
node
.nextNode
=nextSingleNode
;
currentNode
.nextNode
=node
;
}
currentNode
=currentNode
.nextNode
;
if(beginNode
.equals(currentNode
)) {
break;
}
}
}
public void update(int element
,int newElement
) {
MySingleCircularNode currentNode
=this;
while(currentNode
!=null
) {
if(currentNode
.element
==element
) {
currentNode
.element
=newElement
;
}
currentNode
=currentNode
.nextNode
;
if(beginNode
.equals(currentNode
)) {
break;
}
}
}
public void remove(int element
) {
MySingleCircularNode currentNode
=this;
while (currentNode
!=null
) {
if(currentNode
.nextNode
!=null
) {
if(currentNode
.nextNode
.element
==element
){
currentNode
.nextNode
=currentNode
.nextNode
.nextNode
;
}
}
currentNode
=currentNode
.nextNode
;
if(beginNode
.equals(currentNode
)) {
break;
}
}
}
public void show() {
MySingleCircularNode currentNode
=this;
while (currentNode
!=null
) {
System
.out
.print(currentNode
.element
+" ");
currentNode
=currentNode
.nextNode
;
if(beginNode
.equals(currentNode
)) {
break;
}
}
System
.out
.println();
}
public static void main(String
[] args
) {
MySingleCircularNode node1
=new MySingleCircularNode(1);
MySingleCircularNode node2
=new MySingleCircularNode(2);
MySingleCircularNode node5
=new MySingleCircularNode(2);
MySingleCircularNode node3
=new MySingleCircularNode(3);
MySingleCircularNode node4
=new MySingleCircularNode(4);
node1
.show();
node1
.insert(1, node2
);
node1
.insert(2, node3
);
node1
.insert(3, node4
);
node1
.insert(4, node5
);
node1
.show();
node1
.update(4, 9);
node1
.show();
node1
.remove(9);
node1
.show();
}
}