Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 947f8d5

Browse files
author
Ram swaroop
committed
linkedlist code structure done
1 parent 7ae7cd3 commit 947f8d5

File tree

5 files changed

+104
-59
lines changed

5 files changed

+104
-59
lines changed

src/me/ramswaroop/common/DoubleLinkedList.java

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
*/
1212
public class DoubleLinkedList<E> implements LinkedList<E> {
1313

14-
Node<E> head;
14+
DoubleLinkedNode<E> head;
1515

1616
@Override
1717
public boolean add(E item) {
@@ -90,7 +90,7 @@ public int size() {
9090

9191
@Override
9292
public void printList() {
93-
Node<E> curr = head;
93+
DoubleLinkedNode<E> curr = head;
9494
out.print("[");
9595
if (curr == null) {
9696
out.println("]");
@@ -102,24 +102,4 @@ public void printList() {
102102
}
103103
out.println(curr.item + "]");
104104
}
105-
106-
private class Node<E> {
107-
E item;
108-
Node<E> next;
109-
Node<E> prev;
110-
111-
Node(Node<E> prev, E item, Node<E> next) {
112-
this.item = item;
113-
this.next = next;
114-
this.prev = prev;
115-
}
116-
117-
Node(Node<E> node) {
118-
if (node == null) return;
119-
120-
this.item = node.item;
121-
this.next = node.next;
122-
this.prev = node.prev;
123-
}
124-
}
125105
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package me.ramswaroop.common;
2+
3+
/**
4+
* Created by IntelliJ IDEA.
5+
*
6+
* @author: ramswaroop
7+
* @date: 6/18/15
8+
* @time: 2:42 PM
9+
*/
10+
public class DoubleLinkedNode<E> {
11+
12+
E item;
13+
DoubleLinkedNode<E> next;
14+
DoubleLinkedNode<E> prev;
15+
16+
DoubleLinkedNode(DoubleLinkedNode<E> prev, E item, DoubleLinkedNode<E> next) {
17+
this.item = item;
18+
this.next = next;
19+
this.prev = prev;
20+
}
21+
22+
DoubleLinkedNode(DoubleLinkedNode<E> node) {
23+
if (node == null) return;
24+
25+
this.item = node.item;
26+
this.next = node.next;
27+
this.prev = node.prev;
28+
}
29+
}

src/me/ramswaroop/common/SingleLinkedList.java

Lines changed: 20 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,16 @@
1313
*/
1414
public class SingleLinkedList<E> implements LinkedList<E> {
1515

16-
Node<E> head;
16+
SingleLinkedNode<E> head;
1717
int size;
1818

1919
@Override
2020
public boolean add(E item) {
21-
Node<E> newNode = new Node<>(item, null);
21+
SingleLinkedNode<E> newNode = new SingleLinkedNode<>(item, null);
2222
if (head == null) { // list empty
2323
head = newNode;
2424
} else { // add to the end of list
25-
Node<E> curr = head;
25+
SingleLinkedNode<E> curr = head;
2626
while (curr.next != null) {
2727
curr = curr.next;
2828
}
@@ -39,8 +39,8 @@ public boolean add(int index, E item) {
3939
if (index == 0) { // add at first
4040
addFirst(item);
4141
} else { // add at any other location
42-
Node<E> nodeAtPrevIndex = getPredecessorNode(index);
43-
Node<E> newNode = new Node<>(item, nodeAtPrevIndex.next);
42+
SingleLinkedNode<E> nodeAtPrevIndex = getPredecessorNode(index);
43+
SingleLinkedNode<E> newNode = new SingleLinkedNode<>(item, nodeAtPrevIndex.next);
4444
nodeAtPrevIndex.next = newNode;
4545
size++;
4646
}
@@ -49,7 +49,7 @@ public boolean add(int index, E item) {
4949

5050
@Override
5151
public void addFirst(E item) {
52-
Node<E> newNode = new Node<>(item, head);
52+
SingleLinkedNode<E> newNode = new SingleLinkedNode<>(item, head);
5353
head = newNode;
5454
size++;
5555
}
@@ -104,8 +104,8 @@ public E remove() {
104104
public E remove(int index) {
105105
isLinkedListEmpty();
106106

107-
Node<E> prevNode = getPredecessorNode(index);
108-
Node<E> delNode;
107+
SingleLinkedNode<E> prevNode = getPredecessorNode(index);
108+
SingleLinkedNode<E> delNode;
109109
if (prevNode == null) { // index = 0
110110
delNode = head;
111111
head = head.next;
@@ -125,7 +125,7 @@ public boolean removeItem(E item) {
125125

126126
if (!contains(item)) return false;
127127

128-
Node<E> prevNode = getPredecessorNode(item);
128+
SingleLinkedNode<E> prevNode = getPredecessorNode(item);
129129
if (prevNode == null) { // index = 0
130130
head = head.next;
131131
size--;
@@ -138,7 +138,7 @@ public boolean removeItem(E item) {
138138

139139
@Override
140140
public E set(int index, E item) {
141-
Node<E> node = getNode(index);
141+
SingleLinkedNode<E> node = getNode(index);
142142
node.item = item;
143143
return node.item;
144144
}
@@ -150,7 +150,7 @@ public int size() {
150150

151151
@Override
152152
public void printList() {
153-
Node<E> curr = head;
153+
SingleLinkedNode<E> curr = head;
154154
out.print("[");
155155
if (curr == null) {
156156
out.println("]");
@@ -163,10 +163,10 @@ public void printList() {
163163
out.println(curr.item + "]");
164164
}
165165

166-
private Node<E> getPredecessorNode(int index) {
166+
private SingleLinkedNode<E> getPredecessorNode(int index) {
167167
isIndexOutOfBounds(index);
168168

169-
Node<E> curr = head;
169+
SingleLinkedNode<E> curr = head;
170170
int i = 0;
171171
while (i < index - 1) {
172172
curr = curr.next;
@@ -175,9 +175,9 @@ private Node<E> getPredecessorNode(int index) {
175175
return (index == 0) ? null : curr;
176176
}
177177

178-
private Node<E> getPredecessorNode(E item) {
179-
Node<E> prev = null;
180-
Node<E> curr = head;
178+
private SingleLinkedNode<E> getPredecessorNode(E item) {
179+
SingleLinkedNode<E> prev = null;
180+
SingleLinkedNode<E> curr = head;
181181
if (item == null) {
182182
while (curr != null) {
183183
if (curr.item == item) { // when item is null, use == rather than equals()
@@ -198,10 +198,10 @@ private Node<E> getPredecessorNode(E item) {
198198
return null;
199199
}
200200

201-
private Node<E> getNode(int index) {
201+
protected SingleLinkedNode<E> getNode(int index) {
202202
isIndexOutOfBounds(index);
203203

204-
Node<E> curr = head;
204+
SingleLinkedNode<E> curr = head;
205205
int i = 0;
206206
while (i < index) {
207207
curr = curr.next;
@@ -210,8 +210,8 @@ private Node<E> getNode(int index) {
210210
return curr;
211211
}
212212

213-
private Node<E> getNode(E item) {
214-
Node<E> curr = head;
213+
protected SingleLinkedNode<E> getNode(E item) {
214+
SingleLinkedNode<E> curr = head;
215215
if (item == null) {
216216
while (curr != null) { // when item is null, use == rather than equals()
217217
if (curr.item == item) {
@@ -241,21 +241,4 @@ private void isIndexOutOfBounds(int index) {
241241
throw new IndexOutOfBoundsException("Index must be less than " + size);
242242
}
243243
}
244-
245-
private class Node<E> {
246-
E item;
247-
Node<E> next;
248-
249-
Node(E item, Node<E> next) {
250-
this.item = item;
251-
this.next = next;
252-
}
253-
254-
Node(Node<E> node) {
255-
if (node == null) return;
256-
257-
this.item = node.item;
258-
this.next = node.next;
259-
}
260-
}
261244
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package me.ramswaroop.common;
2+
3+
/**
4+
* Created by IntelliJ IDEA.
5+
*
6+
* @author: ramswaroop
7+
* @date: 6/18/15
8+
* @time: 2:37 PM
9+
*/
10+
public class SingleLinkedNode<E> {
11+
12+
E item;
13+
SingleLinkedNode<E> next;
14+
15+
SingleLinkedNode(E item, SingleLinkedNode<E> next) {
16+
this.item = item;
17+
this.next = next;
18+
}
19+
20+
SingleLinkedNode(SingleLinkedNode<E> node) {
21+
if (node == null) return;
22+
23+
this.item = node.item;
24+
this.next = node.next;
25+
}
26+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package me.ramswaroop.linkedlists;
2+
3+
import me.ramswaroop.common.SingleLinkedList;
4+
import me.ramswaroop.common.SingleLinkedNode;
5+
6+
/**
7+
* Created by IntelliJ IDEA.
8+
*
9+
* @author: ramswaroop
10+
* @date: 6/18/15
11+
* @time: 2:35 PM
12+
*/
13+
public class DeleteNode<E> extends SingleLinkedList<E> {
14+
15+
public void deleteNode(SingleLinkedNode<E> node) {
16+
17+
}
18+
19+
public static void main(String a[]) {
20+
DeleteNode<Integer> linkedList = new DeleteNode<>();
21+
linkedList.add(34);
22+
linkedList.add(64);
23+
linkedList.add(43);
24+
linkedList.deleteNode(linkedList.getNode(1));
25+
linkedList.printList();
26+
}
27+
}

0 commit comments

Comments
 (0)