forked from PrajaktaSathe/Java
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcircularLinkedList.java
112 lines (95 loc) · 1.95 KB
/
circularLinkedList.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
public class circularLinkedList {
Node head;
int size;
public circularLinkedList() {
head=new Node();
head.next=head;
size=0;
head.data=-1;
}
/**
* adds a new element end of the linkedlist
* @param num
*/
public void add(int num) {
Node newNode=new Node(num);
Node currNode=head;
if(size==0)
{
head.data=num;
}
else {
while(!currNode.next.equals(head))
{
currNode=currNode.next;
}
newNode.next=currNode.next;
currNode.next=newNode;
}
size++;
}
/**
* deletes index
* index 0 is equal to head of linkedlist
* @param index
*/
public void delete(int index) {
Node currNode=head;
Node currNodePrev=head;
if(size==0)
System.out.println("Linkedlist is empty");
if(index>=size)
System.out.println("index of deletion is larger then size of linkedlist");
else{
if(index==0){
while(!currNode.next.equals(head)){
currNode=currNode.next;
}
currNode.next=head.next;
head=head.next;
}else{
for(int i=0;i<index;i++){
currNodePrev=currNode;
currNode=currNode.next;
}
currNodePrev.next=currNode.next;
currNode=null;
}
}
System.out.println("after deletion of "+index+". element :");
print();
}
/**
* prints linkedlist
*
*/
public void print() {
System.out.print(head.data+" ");
Node currNode=head.next;
while(!currNode.equals(head)) {
System.out.print(currNode.data+" ");
currNode=currNode.next;
}
System.out.println();
}
/**
* returns size of linked list
* @return integer size
*/
public int size(){
return size;
}
/**
* returns element of given index
* 0 is denotes head node
* @param index
* @return
*/
public int getElement(int index){
Node currNode=head;
for(int i=0;i<index;i++){
currNode=currNode.next;
}
return currNode.getNodeElement();
}
}