Skip to content

Commit 466b5fb

Browse files
committed
first commit
1 parent 12acc8f commit 466b5fb

File tree

1 file changed

+178
-0
lines changed

1 file changed

+178
-0
lines changed

LinkedListImp.java

Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
public class LinkedListImp {
2+
3+
Node head;
4+
private int size;
5+
6+
LinkedListImp() {
7+
this.size = 0;
8+
}
9+
10+
class Node {
11+
int data;
12+
Node next;
13+
14+
// Constructor:
15+
Node(int data) {
16+
this.data = data;
17+
this.next = null;
18+
size++;
19+
}
20+
}
21+
22+
public void addFirst(int data) {
23+
Node newNode = new Node(data);
24+
25+
if (head == null) {
26+
head = newNode;
27+
return;
28+
}
29+
30+
newNode.next = head;
31+
head = newNode;
32+
}
33+
34+
public void addLast(int data) {
35+
Node newNode = new Node(data);
36+
37+
if (head == null) {
38+
head = newNode;
39+
return;
40+
}
41+
42+
Node currentNode = head;
43+
while (currentNode.next != null) {
44+
currentNode = currentNode.next;
45+
}
46+
currentNode.next = newNode;
47+
}
48+
49+
public void addAfter(int data, int position) {
50+
Node newNode = new Node(data);
51+
52+
if (head == null) {
53+
head = newNode;
54+
return;
55+
}
56+
57+
if (position > size) {
58+
System.out.println("List is smaller than specified position!");
59+
return;
60+
}
61+
62+
Node currentNode = head;
63+
int currentPosition = 1;
64+
65+
while (currentPosition != position) {
66+
currentNode = currentNode.next;
67+
currentPosition++;
68+
}
69+
70+
newNode.next = currentNode.next;
71+
currentNode.next = newNode;
72+
}
73+
74+
public void printList() {
75+
if (head == null) {
76+
System.out.println("The list is empty.");
77+
}
78+
79+
Node currentNode = head;
80+
81+
while (currentNode != null) {
82+
System.out.print(currentNode.data + " --> ");
83+
currentNode = currentNode.next;
84+
}
85+
System.out.print("NULL.\n");
86+
}
87+
88+
public void delFirst() {
89+
if (head == null) {
90+
System.out.println("The list is empty.");
91+
return;
92+
}
93+
size--;
94+
95+
Node deletedNode = head;
96+
head = head.next;
97+
98+
System.out.println("Deleted: " + deletedNode.data);
99+
}
100+
101+
public void delLast() {
102+
if (head == null) {
103+
System.out.println("The list is empty.");
104+
return;
105+
}
106+
size--;
107+
108+
if (head.next == null) {
109+
head = null;
110+
return;
111+
}
112+
113+
Node deletedNode = head;
114+
Node currentNode = head.next;
115+
116+
while (currentNode.next != null) {
117+
currentNode = currentNode.next;
118+
deletedNode = deletedNode.next;
119+
}
120+
121+
System.out.println("Deleted: " + deletedNode.next.data);
122+
deletedNode.next = null;
123+
}
124+
125+
public void deleteAfter(int position) {
126+
if (head == null) {
127+
System.out.println("The list is empty.");
128+
return;
129+
}
130+
size--;
131+
132+
if (position > size) {
133+
System.out.println("List is smaller than specified position!");
134+
return;
135+
}
136+
137+
Node currentNode = head;
138+
int currentPosition = 1;
139+
140+
while (currentPosition < position-1) {
141+
currentNode = currentNode.next;
142+
currentPosition++;
143+
}
144+
Node deletedNode = currentNode.next;
145+
currentNode.next = deletedNode.next;
146+
147+
System.out.println("Deleted: " + deletedNode.data);
148+
149+
}
150+
151+
public int getSize() {
152+
return size;
153+
}
154+
155+
public static void main(String[] args) {
156+
LinkedListImp ll = new LinkedListImp();
157+
158+
ll.addFirst(10);
159+
ll.addFirst(20);
160+
ll.addFirst(30);
161+
ll.addLast(40);
162+
ll.addLast(50);
163+
ll.addFirst(11);
164+
ll.addLast(60);
165+
166+
ll.printList();
167+
System.out.println(ll.getSize());
168+
169+
ll.addAfter(65, 2);
170+
171+
ll.printList();
172+
System.out.println(ll.getSize());
173+
174+
ll.deleteAfter(3);
175+
ll.printList();
176+
System.out.println(ll.getSize());
177+
}
178+
}

0 commit comments

Comments
 (0)