diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 000000000..13566b81b
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 000000000..2bfdeda2a
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 000000000..a866e1a9f
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 000000000..35eb1ddfb
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Exercise_1.java b/Exercise_1.java
index 314a3cb45..295512d69 100644
--- a/Exercise_1.java
+++ b/Exercise_1.java
@@ -7,29 +7,49 @@ class Stack {
boolean isEmpty()
{
- //Write your code here
+ return top < 0;
}
Stack()
{
- //Initialize your constructor
+ this.top = -1;
}
boolean push(int x)
{
- //Check for stack Overflow
- //Write your code here
+ if (top >= MAX-1)
+ {
+ System.out.println("Stack Overflow");
+ return false;
+ }
+ else
+ {
+ a[++top] = x;
+ return true;
+ }
}
int pop()
{
- //If empty return 0 and print " Stack Underflow"
- //Write your code here
+ if (isEmpty())
+ {
+ System.out.println("Stack Underflow");
+ return -1;
+ }
+ else
+ {
+ return a[top--];
+ }
}
int peek()
- {
- //Write your code here
+ {
+ if (isEmpty()) {
+ System.out.println("Stack Underflow");
+ return 0;
+ } else {
+ return a[top];
+ }
}
}
@@ -40,7 +60,8 @@ public static void main(String args[])
Stack s = new Stack();
s.push(10);
s.push(20);
- s.push(30);
- System.out.println(s.pop() + " Popped from stack");
+ s.push(30);
+ System.out.println(s.pop() + " Popped from stack");
+ System.out.println("Top element is " + s.peek());
}
}
diff --git a/Exercise_2.java b/Exercise_2.java
deleted file mode 100644
index 5a9c4868c..000000000
--- a/Exercise_2.java
+++ /dev/null
@@ -1,52 +0,0 @@
-public class StackAsLinkedList {
-
- StackNode root;
-
- static class StackNode {
- int data;
- StackNode next;
-
- StackNode(int data)
- {
- //Constructor here
- }
- }
-
-
- public boolean isEmpty()
- {
- //Write your code here for the condition if stack is empty.
- }
-
- public void push(int data)
- {
- //Write code to push data to the stack.
- }
-
- public int pop()
- {
- //If Stack Empty Return 0 and print "Stack Underflow"
- //Write code to pop the topmost element of stack.
- //Also return the popped element
- }
-
- public int peek()
- {
- //Write code to just return the topmost element without removing it.
- }
-
- //Driver code
- public static void main(String[] args)
- {
-
- StackAsLinkedList sll = new StackAsLinkedList();
-
- sll.push(10);
- sll.push(20);
- sll.push(30);
-
- System.out.println(sll.pop() + " popped from stack");
-
- System.out.println("Top element is " + sll.peek());
- }
-}
diff --git a/Exercise_3.java b/LinkedList.java
similarity index 62%
rename from Exercise_3.java
rename to LinkedList.java
index fb66d329d..bd64a5041 100644
--- a/Exercise_3.java
+++ b/LinkedList.java
@@ -1,6 +1,4 @@
-import java.io.*;
-
-// Java program to implement
+// Java program to implement
// a Singly Linked List
public class LinkedList {
@@ -17,25 +15,31 @@ static class Node {
// Constructor
Node(int d)
{
- //Write your code here
+ this .data = d;
+ this.next = null;
}
}
// Method to insert a new node
public static LinkedList insert(LinkedList list, int data)
- {
- // Create a new node with given data
-
- // If the Linked List is empty,
- // then make the new node as head
-
- // Else traverse till the last node
- // and insert the new_node there
+ {
- // Insert the new_node at last node
- // Return the list by head
-
- }
+ Node newNode = new Node(data);
+
+ if(list.head == null)
+ list.head = newNode;
+ else
+ {
+ Node temp = list.head;
+ while (temp.next != null)
+ {
+ temp = temp.next;
+ }
+ temp.next = newNode;
+ }
+
+ return list;
+ }
// Method to print the LinkedList.
public static void printList(LinkedList list)
@@ -44,7 +48,13 @@ public static void printList(LinkedList list)
// Print the data at current node
- // Go to next node
+ // Go to next node
+ Node temp = list.head;
+ while(temp != null)
+ {
+ System.out.print(temp.data + " ");
+ temp = temp.next;
+ }
}
// Driver code
diff --git a/PreCourse-1.iml b/PreCourse-1.iml
new file mode 100644
index 000000000..b107a2dd8
--- /dev/null
+++ b/PreCourse-1.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/StackAsLinkedList.java b/StackAsLinkedList.java
new file mode 100644
index 000000000..2ed34ee5e
--- /dev/null
+++ b/StackAsLinkedList.java
@@ -0,0 +1,75 @@
+public class StackAsLinkedList {
+ // Time: push/pop/peek/isEmpty are all O(1).
+ // Space: O(n) for n nodes.
+
+ StackNode root;
+
+ static class StackNode {
+ int data;
+ StackNode next;
+
+ StackNode(int data)
+ {
+ this.data = data;
+ this.next = null;
+ }
+ }
+
+
+ public boolean isEmpty()
+ {
+ return root == null;
+ }
+
+ public void push(int data)
+ {
+ // Create a new node
+ StackNode newNode = new StackNode(data);
+ // New node points to current top
+ newNode.next = root;
+ // New node becomes the new top
+ root = newNode;
+ }
+
+ public int pop()
+ {
+
+ if (isEmpty())
+ {
+ System.out.println("Stack Underflow");
+ return 0;
+ }
+ else
+ {
+ int popData = root.data;
+ root = root.next;
+ return popData;
+ }
+ }
+
+ public int peek()
+ {
+ if (isEmpty())
+ {
+ System.out.println("Stack Underflow");
+ return 0;
+ }
+ else
+ return root.data;
+ }
+
+ //Driver code
+ public static void main(String[] args)
+ {
+
+ StackAsLinkedList sll = new StackAsLinkedList();
+
+ sll.push(10);
+ sll.push(20);
+ sll.push(30);
+
+ System.out.println(sll.pop() + " popped from stack");
+
+ System.out.println("Top element is " + sll.peek());
+ }
+}
diff --git a/out/production/PreCourse-1/.idea/.gitignore b/out/production/PreCourse-1/.idea/.gitignore
new file mode 100644
index 000000000..13566b81b
--- /dev/null
+++ b/out/production/PreCourse-1/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/out/production/PreCourse-1/.idea/misc.xml b/out/production/PreCourse-1/.idea/misc.xml
new file mode 100644
index 000000000..2bfdeda2a
--- /dev/null
+++ b/out/production/PreCourse-1/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/out/production/PreCourse-1/.idea/modules.xml b/out/production/PreCourse-1/.idea/modules.xml
new file mode 100644
index 000000000..a866e1a9f
--- /dev/null
+++ b/out/production/PreCourse-1/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/out/production/PreCourse-1/.idea/vcs.xml b/out/production/PreCourse-1/.idea/vcs.xml
new file mode 100644
index 000000000..35eb1ddfb
--- /dev/null
+++ b/out/production/PreCourse-1/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/out/production/PreCourse-1/Exercise_1.cpp b/out/production/PreCourse-1/Exercise_1.cpp
new file mode 100644
index 000000000..381e274d5
--- /dev/null
+++ b/out/production/PreCourse-1/Exercise_1.cpp
@@ -0,0 +1,54 @@
+#include
+
+using namespace std;
+
+#define MAX 1000
+
+class Stack {
+ //Please read sample.java file before starting.
+ //Kindly include Time and Space complexity at top of each file
+ int top;
+
+public:
+ int a[MAX]; // Maximum size of Stack
+
+ Stack() { //Constructor here }
+ bool push(int x);
+ int pop();
+ int peek();
+ bool isEmpty();
+};
+
+bool Stack::push(int x)
+{
+ //Your code here
+ //Check Stack overflow as well
+}
+
+int Stack::pop()
+{
+ //Your code here
+ //Check Stack Underflow as well
+}
+int Stack::peek()
+{
+ //Your code here
+ //Check empty condition too
+}
+
+bool Stack::isEmpty()
+{
+ //Your code here
+}
+
+// Driver program to test above functions
+int main()
+{
+ class Stack s;
+ s.push(10);
+ s.push(20);
+ s.push(30);
+ cout << s.pop() << " Popped from stack\n";
+
+ return 0;
+}
diff --git a/out/production/PreCourse-1/Exercise_1.js b/out/production/PreCourse-1/Exercise_1.js
new file mode 100644
index 000000000..207189ea0
--- /dev/null
+++ b/out/production/PreCourse-1/Exercise_1.js
@@ -0,0 +1,35 @@
+class Stack {
+ //Please read sample.java file before starting.
+ //Kindly include Time and Space complexity at top of each file
+
+ constructor() {
+ //Initialize your constructor
+ this.MAX = 1000;
+ this.top = -1;
+ this.a = new Array(this.MAX);
+ }
+
+ function isEmpty() {
+ //Write your code here
+ }
+
+ function push(x) {
+ //Check for stack Overflow
+ //Write your code here
+ }
+
+ function pop() {
+ //If empty return 0 and print " Stack Underflow"
+ //Write your code here
+ }
+
+ function peek() {
+ //Write your code here
+ }
+}
+
+let s = new Stack();
+s.push(10);
+s.push(20);
+s.push(30);
+console.log(s.pop() + " Popped from stack");
diff --git a/out/production/PreCourse-1/Exercise_1.py b/out/production/PreCourse-1/Exercise_1.py
new file mode 100644
index 000000000..532833f5d
--- /dev/null
+++ b/out/production/PreCourse-1/Exercise_1.py
@@ -0,0 +1,24 @@
+class myStack:
+ #Please read sample.java file before starting.
+ #Kindly include Time and Space complexity at top of each file
+ def __init__(self):
+
+ def isEmpty(self):
+
+ def push(self, item):
+
+ def pop(self):
+
+
+ def peek(self):
+
+ def size(self):
+
+ def show(self):
+
+
+s = myStack()
+s.push('1')
+s.push('2')
+print(s.pop())
+print(s.show())
diff --git a/out/production/PreCourse-1/Exercise_2.cpp b/out/production/PreCourse-1/Exercise_2.cpp
new file mode 100644
index 000000000..1eb3de9b9
--- /dev/null
+++ b/out/production/PreCourse-1/Exercise_2.cpp
@@ -0,0 +1,52 @@
+#include
+using namespace std;
+
+// A structure to represent a stack
+class StackNode {
+public:
+ int data;
+ StackNode* next;
+};
+
+StackNode* newNode(int data)
+{
+ StackNode* stackNode = new StackNode();
+ stackNode->data = data;
+ stackNode->next = NULL;
+ return stackNode;
+}
+
+int isEmpty(StackNode* root)
+{
+ //Your code here
+}
+
+void push(StackNode** root, int data)
+{
+ //Your code here
+}
+
+int pop(StackNode** root)
+{
+ //Your code here
+}
+
+int peek(StackNode* root)
+{
+ //Your code here
+}
+
+int main()
+{
+ StackNode* root = NULL;
+
+ push(&root, 10);
+ push(&root, 20);
+ push(&root, 30);
+
+ cout << pop(&root) << " popped from stack\n";
+
+ cout << "Top element is " << peek(root) << endl;
+
+ return 0;
+}
\ No newline at end of file
diff --git a/out/production/PreCourse-1/Exercise_2.js b/out/production/PreCourse-1/Exercise_2.js
new file mode 100644
index 000000000..2e3216f94
--- /dev/null
+++ b/out/production/PreCourse-1/Exercise_2.js
@@ -0,0 +1,36 @@
+class StackAsLinkedList {
+
+ static stackNode = class {
+
+ constructor(d) {
+ //Constructor here
+ this.data = d;
+ this.next = null;
+ }
+ }
+
+ function isEmpty() {
+ //Write your code here for the condition if stack is empty.
+ }
+
+ function push(data) {
+ //Write code to push data to the stack.
+ }
+
+ function pop() {
+ //If Stack Empty Return 0 and print "Stack Underflow"
+ //Write code to pop the topmost element of stack.
+ //Also return the popped element
+ }
+
+ function peek() {
+ //Write code to just return the topmost element without removing it.
+ }
+}
+//Driver code
+const sll = new StackAsLinkedList();
+sll.push(10);
+sll.push(20);
+sll.push(30);
+console.log(sll.pop() + " popped from stack");
+console.log("Top element is " + sll.peek());
diff --git a/out/production/PreCourse-1/Exercise_2.py b/out/production/PreCourse-1/Exercise_2.py
new file mode 100644
index 000000000..b11492215
--- /dev/null
+++ b/out/production/PreCourse-1/Exercise_2.py
@@ -0,0 +1,32 @@
+
+class Node:
+ def __init__(self, data):
+ self.data = data
+ self.next = None
+
+class Stack:
+ def __init__(self):
+
+ def push(self, data):
+
+ def pop(self):
+
+a_stack = Stack()
+while True:
+ #Give input as string if getting an EOF error. Give input like "push 10" or "pop"
+ print('push ')
+ print('pop')
+ print('quit')
+ do = input('What would you like to do? ').split()
+ #Give input as string if getting an EOF error. Give input like "push 10" or "pop"
+ operation = do[0].strip().lower()
+ if operation == 'push':
+ a_stack.push(int(do[1]))
+ elif operation == 'pop':
+ popped = a_stack.pop()
+ if popped is None:
+ print('Stack is empty.')
+ else:
+ print('Popped value: ', int(popped))
+ elif operation == 'quit':
+ break
diff --git a/out/production/PreCourse-1/Exercise_3.cpp b/out/production/PreCourse-1/Exercise_3.cpp
new file mode 100644
index 000000000..f34d89ac1
--- /dev/null
+++ b/out/production/PreCourse-1/Exercise_3.cpp
@@ -0,0 +1,80 @@
+#include
+using namespace std;
+
+// A linked list node (changes)
+class Node
+{
+ public:
+ int data;
+ Node *next;
+};
+
+/* Given a reference (pointer to pointer)
+to the head of a list and an int, inserts
+a new node on the front of the list. */
+void push(Node** head_ref, int new_data)
+{
+ /* 1. allocate node */
+
+ /* 2. put in the data */
+
+ /* 3. Make next of new node as head */
+
+ /* 4. move the head to point to the new node */
+}
+
+/* Given a node prev_node, insert a new node after the given
+prev_node */
+void insertAfter(Node* prev_node, int new_data)
+{
+ /*1. check if the given prev_node is NULL */
+
+ /* 2. allocate new node */
+
+ /* 3. put in the data */
+
+ /* 4. Make next of new node as next of prev_node */
+
+ /* 5. move the next of prev_node as new_node */
+}
+
+/* Given a reference (pointer to pointer) to the head
+of a list and an int, appends a new node at the end */
+void append(Node** head_ref, int new_data)
+{
+ /* 1. allocate node */
+
+ /* 2. put in the data */
+
+ /* 3. This new node is going to be
+ the last node, so make next of
+ it as NULL*/
+
+ /* 4. If the Linked List is empty,
+ then make the new node as head */
+
+ /* 5. Else traverse till the last node */
+
+ /* 6. Change the next of last node */
+}
+
+// This function prints contents of
+// linked list starting from head
+void printList(Node *node)
+{
+ //Your code here
+}
+
+/* Driver code*/
+int main()
+{
+ Node* head = NULL;
+ append(&head, 6);
+ push(&head, 7);
+ push(&head, 1);
+ append(&head, 4);
+ insertAfter(head->next, 8);
+ cout<<"Created Linked list is: ";
+ printList(head);
+ return 0;
+}
\ No newline at end of file
diff --git a/out/production/PreCourse-1/Exercise_3.js b/out/production/PreCourse-1/Exercise_3.js
new file mode 100644
index 000000000..d1511f80e
--- /dev/null
+++ b/out/production/PreCourse-1/Exercise_3.js
@@ -0,0 +1,49 @@
+// Java program to implement
+// a Singly Linked List
+class LinkedList {
+ constructor() {
+ this.head = null;
+ }
+ // Linked list Node.
+ static Node = class {
+ constructor(d) {
+ this.data = d;
+ this.next = null;
+ }
+ }
+
+ // Method to insert a new node
+ function insert(list, data) {
+ // Create a new node with given data
+
+ // If the Linked List is empty,
+ // then make the new node as head
+
+ // Else traverse till the last node
+ // and insert the new_node there
+
+ // Insert the new_node at last node
+ // Return the list by head
+ }
+
+ // Method to print the LinkedList.
+ function printList(list) {
+ // Traverse through the LinkedList
+
+ // Print the data at current node
+
+ // Go to next node
+ }
+}
+ // Driver code
+ /* Start with the empty list. */
+ let list = new LinkedList();
+
+ // ******INSERTION******
+ // Insert the values
+ list.insert(list, 1);
+ list.insert(list, 2);
+ list.insert(list, 3);
+ list.insert(list, 4);
+ // Print the LinkedList
+ list.printList(list);
diff --git a/out/production/PreCourse-1/Exercise_3.py b/out/production/PreCourse-1/Exercise_3.py
new file mode 100644
index 000000000..a5d466b59
--- /dev/null
+++ b/out/production/PreCourse-1/Exercise_3.py
@@ -0,0 +1,32 @@
+class ListNode:
+ """
+ A node in a singly-linked list.
+ """
+ def __init__(self, data=None, next=None):
+
+class SinglyLinkedList:
+ def __init__(self):
+ """
+ Create a new singly-linked list.
+ Takes O(1) time.
+ """
+ self.head = None
+
+ def append(self, data):
+ """
+ Insert a new element at the end of the list.
+ Takes O(n) time.
+ """
+
+ def find(self, key):
+ """
+ Search for the first element with `data` matching
+ `key`. Return the element or `None` if not found.
+ Takes O(n) time.
+ """
+
+ def remove(self, key):
+ """
+ Remove the first occurrence of `key` in the list.
+ Takes O(n) time.
+ """
diff --git a/out/production/PreCourse-1/LinkedList$Node.class b/out/production/PreCourse-1/LinkedList$Node.class
new file mode 100644
index 000000000..136e9ac30
Binary files /dev/null and b/out/production/PreCourse-1/LinkedList$Node.class differ
diff --git a/out/production/PreCourse-1/LinkedList.class b/out/production/PreCourse-1/LinkedList.class
new file mode 100644
index 000000000..94674bb23
Binary files /dev/null and b/out/production/PreCourse-1/LinkedList.class differ
diff --git a/out/production/PreCourse-1/Main.class b/out/production/PreCourse-1/Main.class
new file mode 100644
index 000000000..ed2c00bca
Binary files /dev/null and b/out/production/PreCourse-1/Main.class differ
diff --git a/out/production/PreCourse-1/PreCourse-1.iml b/out/production/PreCourse-1/PreCourse-1.iml
new file mode 100644
index 000000000..b107a2dd8
--- /dev/null
+++ b/out/production/PreCourse-1/PreCourse-1.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/out/production/PreCourse-1/README.md b/out/production/PreCourse-1/README.md
new file mode 100644
index 000000000..1e1abed69
--- /dev/null
+++ b/out/production/PreCourse-1/README.md
@@ -0,0 +1,11 @@
+# PreCourse_1
+
+# All Instructions are already provided in the respective files.
+
+Exercise_1 : Implement Stack using Array.
+
+Exercise_2 : Implement Stack using Linked List.
+
+Exercise_3 : Implement Singly Linked List.
+
+*After completing the project kindly submit a pull request*
diff --git a/out/production/PreCourse-1/Stack.class b/out/production/PreCourse-1/Stack.class
new file mode 100644
index 000000000..4b0e7d332
Binary files /dev/null and b/out/production/PreCourse-1/Stack.class differ
diff --git a/out/production/PreCourse-1/StackAsLinkedList$StackNode.class b/out/production/PreCourse-1/StackAsLinkedList$StackNode.class
new file mode 100644
index 000000000..6b532f776
Binary files /dev/null and b/out/production/PreCourse-1/StackAsLinkedList$StackNode.class differ
diff --git a/out/production/PreCourse-1/StackAsLinkedList.class b/out/production/PreCourse-1/StackAsLinkedList.class
new file mode 100644
index 000000000..2c67d318f
Binary files /dev/null and b/out/production/PreCourse-1/StackAsLinkedList.class differ