Skip to content

Commit acc679f

Browse files
author
Ram swaroop
committed
linkedlist add done
1 parent 0bb9f27 commit acc679f

File tree

4 files changed

+127
-9
lines changed

4 files changed

+127
-9
lines changed

src/me/ramswaroop/Main.java

+32-6
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package me.ramswaroop;
22

3-
import me.ramswaroop.common.LinkedQueue;
4-
import me.ramswaroop.common.LinkedStack;
5-
import me.ramswaroop.common.Queue;
6-
import me.ramswaroop.common.Stack;
3+
import me.ramswaroop.common.*;
4+
import me.ramswaroop.linkedlists.SingleLinkedList;
75

86
import java.util.Scanner;
97

@@ -16,13 +14,14 @@ public static void main(String[] args) {
1614
Scanner in = new Scanner(System.in);
1715
Stack<Integer> stack = new LinkedStack<>();
1816
Queue<Integer> queue = new LinkedQueue<>();
17+
LinkedList<Integer> singleLinkedList = new SingleLinkedList<>();
1918
chooseModule:
2019
while (true) {
2120
out.println("Choose module:");
2221
out.println("==============");
2322
out.println("1. Stack");
2423
out.println("2. Queue");
25-
out.println("3. BST");
24+
out.println("3. SingleLinkedList");
2625
out.println("4. Exit");
2726
k1 = Integer.parseInt(in.nextLine());
2827
switch (k1) {
@@ -95,7 +94,34 @@ public static void main(String[] args) {
9594
}
9695
}
9796
case 3:
98-
break;
97+
while (true) {
98+
out.println("Select operation:");
99+
out.println("=================");
100+
out.println("1. Add");
101+
out.println("2. Remove");
102+
out.println("3. Print");
103+
out.println("4. Exit module");
104+
k2 = Integer.parseInt(in.nextLine());
105+
switch (k2) {
106+
case 1:
107+
out.println("Enter value:");
108+
int input = Integer.parseInt(in.nextLine());
109+
singleLinkedList.add(input);
110+
singleLinkedList.printList();
111+
break;
112+
case 2:
113+
out.println("Removed element: " + singleLinkedList.remove());
114+
singleLinkedList.printList();
115+
break;
116+
case 3:
117+
singleLinkedList.printList();
118+
break;
119+
case 5:
120+
continue chooseModule;
121+
default:
122+
out.println("Wrong choice!");
123+
}
124+
}
99125
case 4:
100126
out.println("Exiting...");
101127
System.exit(0);

src/me/ramswaroop/common/LinkedList.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public interface LinkedList<E> {
1313
* Appends the specified element to the end of this list.
1414
*
1515
* @param item
16-
* @return
16+
* @return {@code true} (as specified by {@link java.util.Collection#add})
1717
*/
1818
boolean add(E item);
1919

@@ -86,6 +86,11 @@ public interface LinkedList<E> {
8686
*/
8787
E getLast();
8888

89+
/**
90+
* Prints the contents of this list.
91+
*/
92+
void printList();
93+
8994
/**
9095
* Retrieves and removes the head (first element) of this list.
9196
*

src/me/ramswaroop/linkedlists/DoubleLinkedList.java

+39
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import me.ramswaroop.common.LinkedList;
44

5+
import static java.lang.System.out;
6+
57
/**
68
* Created by IntelliJ IDEA.
79
*
@@ -11,6 +13,8 @@
1113
*/
1214
public class DoubleLinkedList<E> implements LinkedList<E> {
1315

16+
Node<E> head;
17+
1418
@Override
1519
public boolean add(E item) {
1620
return false;
@@ -85,4 +89,39 @@ public E set(int index, E item) {
8589
public int size() {
8690
return 0;
8791
}
92+
93+
@Override
94+
public void printList() {
95+
Node<E> curr = head;
96+
out.print("[");
97+
if (curr == null) {
98+
out.println("]");
99+
return;
100+
}
101+
while (curr.next != null) {
102+
out.print(curr.item + ",");
103+
curr = curr.next;
104+
}
105+
out.println(curr.item + "]");
106+
}
107+
108+
private class Node<E> {
109+
E item;
110+
Node<E> next;
111+
Node<E> prev;
112+
113+
Node(Node<E> prev, E item, Node<E> next) {
114+
this.item = item;
115+
this.next = next;
116+
this.prev = prev;
117+
}
118+
119+
Node(Node<E> node) {
120+
if (node == null) return;
121+
122+
this.item = node.item;
123+
this.next = node.next;
124+
this.prev = node.prev;
125+
}
126+
}
88127
}

src/me/ramswaroop/linkedlists/SingleLinkedList.java

+50-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import me.ramswaroop.common.LinkedList;
44

5+
import static java.lang.System.out;
6+
57
/**
68
* Created by IntelliJ IDEA.
79
*
@@ -11,9 +13,23 @@
1113
*/
1214
public class SingleLinkedList<E> implements LinkedList<E> {
1315

16+
Node<E> head;
17+
int size;
18+
1419
@Override
1520
public boolean add(E item) {
16-
return false;
21+
Node<E> newNode = new Node<>(item, null);
22+
if (head == null) {
23+
head = newNode;
24+
} else {
25+
Node<E> curr = head;
26+
while (curr.next != null) {
27+
curr = curr.next;
28+
}
29+
curr.next = newNode;
30+
}
31+
size++;
32+
return true;
1733
}
1834

1935
@Override
@@ -83,6 +99,38 @@ public E set(int index, E item) {
8399

84100
@Override
85101
public int size() {
86-
return 0;
102+
return size;
103+
}
104+
105+
@Override
106+
public void printList() {
107+
Node<E> curr = head;
108+
out.print("[");
109+
if (curr == null) {
110+
out.println("]");
111+
return;
112+
}
113+
while (curr.next != null) {
114+
out.print(curr.item + ",");
115+
curr = curr.next;
116+
}
117+
out.println(curr.item + "]");
118+
}
119+
120+
private class Node<E> {
121+
E item;
122+
Node<E> next;
123+
124+
Node(E item, Node<E> next) {
125+
this.item = item;
126+
this.next = next;
127+
}
128+
129+
Node(Node<E> node) {
130+
if (node == null) return;
131+
132+
this.item = node.item;
133+
this.next = node.next;
134+
}
87135
}
88136
}

0 commit comments

Comments
 (0)