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

Commit 72c2687

Browse files
author
Ram swaroop
committed
insertion in sorted linked list
1 parent d0861cd commit 72c2687

13 files changed

+64
-20
lines changed

src/me/ramswaroop/common/DoubleLinkedList.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
* @date: 6/16/15
1212
* @time: 1:00 PM
1313
*/
14-
public class DoubleLinkedList<E> implements LinkedList<E> {
14+
public class DoubleLinkedList<E extends Comparable<E>> implements LinkedList<E> {
1515

1616
public DoubleLinkedNode<E> head;
1717
public int size;
@@ -196,7 +196,7 @@ public void printList() {
196196
out.println(curr.item + "]");*/
197197
}
198198

199-
public static <E> DoubleLinkedList<E> getLinkedList(DoubleLinkedNode<E> node) {
199+
public static <E extends Comparable<E>> DoubleLinkedList<E> getLinkedList(DoubleLinkedNode<E> node) {
200200
DoubleLinkedList<E> linkedList = new DoubleLinkedList<>();
201201
linkedList.head = node;
202202
return linkedList;

src/me/ramswaroop/common/DoubleLinkedNode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @date: 6/18/15
88
* @time: 2:42 PM
99
*/
10-
public class DoubleLinkedNode<E> {
10+
public class DoubleLinkedNode<E extends Comparable<E>> {
1111

1212
public E item;
1313
public DoubleLinkedNode<E> next;

src/me/ramswaroop/common/LinkedList.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @date: 6/16/15
88
* @time: 12:53 PM
99
*/
10-
public interface LinkedList<E> {
10+
public interface LinkedList<E extends Comparable<E>> {
1111

1212
/**
1313
* Appends the specified element to the end of this list.

src/me/ramswaroop/common/SingleLinkedList.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
* @date: 6/16/15
1212
* @time: 1:00 PM
1313
*/
14-
public class SingleLinkedList<E> implements LinkedList<E> {
14+
public class SingleLinkedList<E extends Comparable<E>> implements LinkedList<E> {
1515

1616
public SingleLinkedNode<E> head;
1717
public int size;

src/me/ramswaroop/common/SingleLinkedNode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @date: 6/18/15
88
* @time: 2:37 PM
99
*/
10-
public class SingleLinkedNode<E> {
10+
public class SingleLinkedNode<E extends Comparable<E>> {
1111

1212
public E item;
1313
public SingleLinkedNode<E> next;

src/me/ramswaroop/linkedlists/CloneWithRandPointers.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
* @date: 6/20/15
1111
* @time: 1:00 PM
1212
*/
13-
public class CloneWithRandPointers<E> extends DoubleLinkedList<E> {
13+
public class CloneWithRandPointers<E extends Comparable<E>> extends DoubleLinkedList<E> {
1414

15-
public static <E> DoubleLinkedList<E> clone(DoubleLinkedNode<E> node) {
15+
public static <E extends Comparable<E>> DoubleLinkedList<E> clone(DoubleLinkedNode<E> node) {
1616
DoubleLinkedNode<E> curr = node;
1717

1818
// copy node and insert after it
@@ -57,6 +57,9 @@ public static void main(String a[]) {
5757
linkedList.getNode(3).prev = linkedList.getNode(1);
5858
linkedList.printList();
5959
DoubleLinkedList<Integer> clonedList = clone(linkedList.getNode(0));
60+
clonedList.size = 4;
61+
clonedList.set(1, 567);
6062
clonedList.printList();
63+
linkedList.printList();
6164
}
6265
}

src/me/ramswaroop/linkedlists/DeleteNode.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@
1010
* @date: 6/18/15
1111
* @time: 2:35 PM
1212
*/
13-
public class DeleteNode<E> extends SingleLinkedList<E> {
13+
public class DeleteNode<E extends Comparable<E>> extends SingleLinkedList<E> {
1414

1515
/**
1616
* Given a pointer to a node, delete it.
1717
*
1818
* @param node
1919
* @param <E>
2020
*/
21-
public static <E> void deleteNode(SingleLinkedNode<E> node) {
21+
public static <E extends Comparable<E>> void deleteNode(SingleLinkedNode<E> node) {
2222
// assert node isn't the last node in the linked list
2323
node.item = node.next.item;
2424
node.next = node.next.next;

src/me/ramswaroop/linkedlists/DetectLoop.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* @date: 6/19/15
1313
* @time: 9:24 AM
1414
*/
15-
public class DetectLoop<E> extends SingleLinkedList<E> {
15+
public class DetectLoop<E extends Comparable<E>> extends SingleLinkedList<E> {
1616

1717
/**
1818
* Uses Flyod's Cycle Finding algorithm.
@@ -30,7 +30,7 @@ public class DetectLoop<E> extends SingleLinkedList<E> {
3030
* @param node
3131
* @return
3232
*/
33-
public static <E> boolean isLoopPresent(SingleLinkedNode<E> node) {
33+
public static <E extends Comparable<E>> boolean isLoopPresent(SingleLinkedNode<E> node) {
3434
SingleLinkedNode<E> prev = node, curr = node;
3535
while (curr != null && curr.next != null) {
3636
prev = prev.next;
@@ -51,7 +51,7 @@ public static <E> boolean isLoopPresent(SingleLinkedNode<E> node) {
5151
* @param node
5252
* @return
5353
*/
54-
public static <E> boolean isLoopPresentUsingHashMap(SingleLinkedNode<E> node) {
54+
public static <E extends Comparable<E>> boolean isLoopPresentUsingHashMap(SingleLinkedNode<E> node) {
5555
HashMap<SingleLinkedNode<E>, Boolean> map = new HashMap<>();
5656
SingleLinkedNode<E> curr = node;
5757
while (curr != null) {
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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/21/15
11+
* @time: 10:20 PM
12+
*/
13+
public class InsertionInSortedList<E extends Comparable<E>> extends SingleLinkedList<E> {
14+
15+
/**
16+
* Insert an element in the sorted linked list.
17+
*
18+
* @param item
19+
*/
20+
public void insert(E item) {
21+
int index = 0;
22+
SingleLinkedNode<E> node = head;
23+
while (node != null) {
24+
if (item.compareTo(node.item) < 0) break;
25+
index++;
26+
node = node.next;
27+
}
28+
add(index, item);
29+
}
30+
31+
public static void main(String a[]) {
32+
InsertionInSortedList<Integer> linkedList = new InsertionInSortedList<>();
33+
linkedList.add(00);
34+
linkedList.add(11);
35+
linkedList.add(22);
36+
linkedList.add(33);
37+
linkedList.printList();
38+
linkedList.insert(13);
39+
linkedList.printList();
40+
}
41+
}

src/me/ramswaroop/linkedlists/IsPalindrome.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* @date: 6/18/15
1313
* @time: 2:35 PM
1414
*/
15-
public class IsPalindrome<E> extends SingleLinkedList<E> {
15+
public class IsPalindrome<E extends Comparable<E>> extends SingleLinkedList<E> {
1616

1717
/**
1818
* Uses Stack to test whether a linked list starting
@@ -21,7 +21,7 @@ public class IsPalindrome<E> extends SingleLinkedList<E> {
2121
* @param node
2222
* @return
2323
*/
24-
public static <E> boolean isPalindrome(SingleLinkedNode<E> node) {
24+
public static <E extends Comparable<E>> boolean isPalindrome(SingleLinkedNode<E> node) {
2525
SingleLinkedNode<E> curr = node;
2626
Stack<SingleLinkedNode<E>> stack = new LinkedStack<>();
2727

src/me/ramswaroop/linkedlists/MiddleNode.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
* @date: 6/18/15
1111
* @time: 10:34 PM
1212
*/
13-
public class MiddleNode<E> extends SingleLinkedList<E> {
13+
public class MiddleNode<E extends Comparable<E>> extends SingleLinkedList<E> {
1414

15-
public static <E> SingleLinkedNode<E> getMiddleNode(SingleLinkedNode<E> node) {
15+
public static <E extends Comparable<E>> SingleLinkedNode<E> getMiddleNode(SingleLinkedNode<E> node) {
1616
SingleLinkedNode<E> slow = node;
1717
SingleLinkedNode<E> fast = node;
1818
while (fast != null && fast.next != null) {

src/me/ramswaroop/linkedlists/NthNodeFromLast.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
* @date: 6/18/15
1111
* @time: 6:49 PM
1212
*/
13-
public class NthNodeFromLast<E> extends SingleLinkedList<E> {
13+
public class NthNodeFromLast<E extends Comparable<E>> extends SingleLinkedList<E> {
1414

15-
public static <E> SingleLinkedNode<E> getNthNodeFromLast(SingleLinkedNode<E> node, int n) {
15+
public static <E extends Comparable<E>> SingleLinkedNode<E> getNthNodeFromLast(SingleLinkedNode<E> node, int n) {
1616
SingleLinkedNode<E> slow = node;
1717
SingleLinkedNode<E> fast = node;
1818
// move the fast reference ahead of slow reference by 'n' nodes

src/me/ramswaroop/linkedlists/ReverseList.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
* @date: 6/19/15
1111
* @time: 9:24 AM
1212
*/
13-
public class ReverseList<E> extends SingleLinkedList<E> {
13+
public class ReverseList<E extends Comparable<E>> extends SingleLinkedList<E> {
1414

1515
/**
1616
* Reverses the linked list using 3 references prev, curr and next.

0 commit comments

Comments
 (0)