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