Skip to content

Commit 09142a9

Browse files
committed
insertElementAtBottom
1 parent 369fd8f commit 09142a9

File tree

6 files changed

+338
-0
lines changed

6 files changed

+338
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,220 @@
1+
class Node {
2+
// constructor
3+
constructor(element) {
4+
this.element = element;
5+
this.next = null
6+
}
7+
}
8+
// linkedlist class
9+
class LinkedList {
10+
constructor() {
11+
this.head = null;
12+
this.size = 0;
13+
}
14+
15+
// adds an element at the end
16+
// of list
17+
add(element) {
18+
var node = new Node(element);
19+
var current;
20+
21+
if (this.head == null)
22+
this.head = node;
23+
else {
24+
current = this.head;
25+
while (current.next) {
26+
current = current.next;
27+
}
28+
current.next = node;
29+
}
30+
this.size++;
31+
}
32+
33+
// insert element at the position index
34+
// of the list
35+
insertAt(element, index) {
36+
if (index < 0 || index > this.size)
37+
return console.log("Please enter a valid index.");
38+
else {
39+
// creates a new node
40+
var node = new Node(element);
41+
var curr, prev;
42+
43+
curr = this.head;
44+
45+
// add the element to the
46+
// first index
47+
if (index == 0) {
48+
node.next = this.head;
49+
this.head = node;
50+
} else {
51+
curr = this.head;
52+
var it = 0;
53+
54+
// iterate over the list to find
55+
// the position to insert
56+
while (it < index) {
57+
it++;
58+
prev = curr;
59+
curr = curr.next;
60+
}
61+
62+
// adding an element
63+
node.next = curr;
64+
prev.next = node;
65+
}
66+
this.size++;
67+
}
68+
}
69+
70+
// removes an element from the
71+
// specified location
72+
removeFrom(index) {
73+
if (index < 0 || index >= this.size)
74+
return console.log("Please Enter a valid index");
75+
else {
76+
var curr, prev, it = 0;
77+
curr = this.head;
78+
prev = curr;
79+
80+
// deleting first element
81+
if (index === 0) {
82+
this.head = curr.next;
83+
} else {
84+
// iterate over the list to the
85+
// position to removce an element
86+
while (it < index) {
87+
it++;
88+
prev = curr;
89+
curr = curr.next;
90+
}
91+
92+
// remove the element
93+
prev.next = curr.next;
94+
}
95+
this.size--;
96+
97+
// return the remove element
98+
return curr.element;
99+
}
100+
}
101+
102+
// removes a given element from the
103+
// list
104+
removeElement(element) {
105+
var current = this.head;
106+
var prev = null;
107+
108+
// iterate over the list
109+
while (current != null) {
110+
// comparing element with current
111+
// element if found then remove the
112+
// and return true
113+
if (current.element === element) {
114+
if (prev == null) {
115+
this.head = current.next;
116+
} else {
117+
prev.next = current.next;
118+
}
119+
this.size--;
120+
return current.element;
121+
}
122+
prev = current;
123+
current = current.next;
124+
}
125+
return -1;
126+
}
127+
128+
129+
// finds the index of element
130+
indexOf(element) {
131+
var count = 0;
132+
var current = this.head;
133+
134+
// iterate over the list
135+
while (current != null) {
136+
// compare each element of the list
137+
// with given element
138+
if (current.element === element)
139+
return count;
140+
count++;
141+
current = current.next;
142+
}
143+
144+
// not found
145+
return -1;
146+
}
147+
148+
// checks the list for empty
149+
isEmpty() {
150+
return this.size == 0;
151+
}
152+
153+
// gives the size of the list
154+
size_of_list() {
155+
console.log(this.size);
156+
}
157+
158+
159+
// prints the list items
160+
printList() {
161+
var curr = this.head;
162+
var str = "";
163+
while (curr) {
164+
str += curr.element + " ";
165+
curr = curr.next;
166+
}
167+
console.log(str);
168+
}
169+
170+
}
171+
172+
// creating an object for the
173+
// Linkedlist class
174+
var ll = new LinkedList();
175+
176+
// testing isEmpty on an empty list
177+
// returns true
178+
console.log(ll.isEmpty());
179+
180+
// adding element to the list
181+
ll.add(10);
182+
183+
// prints 10
184+
ll.printList();
185+
186+
// returns 1
187+
console.log(ll.size_of_list());
188+
189+
// adding more elements to the list
190+
ll.add(20);
191+
ll.add(30);
192+
ll.add(40);
193+
ll.add(50);
194+
195+
// returns 10 20 30 40 50
196+
ll.printList();
197+
198+
// prints 50 from the list
199+
console.log("is element removed ?" + ll.removeElement(50));
200+
201+
// prints 10 20 30 40
202+
ll.printList();
203+
204+
// returns 3
205+
console.log("Index of 40 " + ll.indexOf(40));
206+
207+
// insert 60 at second position
208+
// ll contains 10 20 60 30 40
209+
ll.insertAt(60, 2);
210+
211+
ll.printList();
212+
213+
// returns false
214+
console.log("is List Empty ? " + ll.isEmpty());
215+
216+
// remove 3rd element from the list
217+
console.log(ll.removeFrom(3));
218+
219+
// prints 10 20 60 40
220+
ll.printList();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
class Node {
2+
constructor(element) {
3+
this.value = element;
4+
this.next = null;
5+
}
6+
}
7+
8+
class LinkedList {
9+
10+
constructor() {
11+
this.head = null;
12+
this.size = 0;
13+
}
14+
15+
// add
16+
add(element) {
17+
var node = new Node(element);
18+
if (this.head === null) {
19+
this.head = node;
20+
} else {
21+
var current = this.head;
22+
while (current.next != null) {
23+
current = current.next;
24+
}
25+
current.next = node;
26+
}
27+
this.size++;
28+
}
29+
30+
// removeElement
31+
removeElement(element) {
32+
33+
}
34+
35+
indexOf(element) {
36+
var count = 0;
37+
var current = this.head;
38+
while (current != null) {
39+
if (current.value === element) {
40+
return count;
41+
}
42+
count++;
43+
current = current.next;
44+
}
45+
return -1;
46+
}
47+
48+
}
49+
50+
var ll = new LinkedList();
51+
ll.add(10);
52+
ll.add(20);
53+
console.log(Array.isArray(ll));
+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class Stack {
2+
constructor() {
3+
this.item = [];
4+
}
5+
add(element) {
6+
this.item.push(element);
7+
}
8+
remove() {
9+
this.item.pop();
10+
}
11+
printStack() {
12+
return this.item;
13+
}
14+
}
15+
16+
var stack = new Stack();
17+
stack.add(10);
18+
stack.add(30);
19+
stack.add(60);
20+
console.log(stack.printStack());
21+
stack.remove();
22+
console.log(stack.printStack());
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
function insertElementAtBotton(stack, count, size, desiredElement) {
2+
3+
if (count === size) {
4+
stack.push(desiredElement);
5+
return;
6+
}
7+
var num = stack[stack.length - 1];
8+
stack.pop();
9+
console.log(stack);
10+
insertElementAtBotton(stack, count + 1, size, desiredElement);
11+
stack.push(num);
12+
console.log(stack);
13+
}
14+
15+
var stack = [1, 2, 3, 4];
16+
insertElementAtBotton(stack, 0, stack.length, 9);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
function removeMiddle(stack, count, size) {
2+
if (count === Math.floor(stack.length / 2) + 1) {
3+
stack.pop();
4+
return;
5+
}
6+
7+
var num = stack[stack.length - 1];
8+
stack.pop();
9+
removeMiddle(stack, count + 1, size);
10+
stack.push(num);
11+
if (stack.length + 1 == size) {
12+
console.log(stack);
13+
}
14+
}
15+
var stack = [1, 2, 3, 4];
16+
removeMiddle(stack, 0, stack.length);

Practice Problems/tralling_zero.js

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/* This question is not solved */
2+
3+
4+
function trailling_zero(arr) {
5+
var start = 0;
6+
for (let i = 1; i < arr.length; i++) {
7+
8+
}
9+
console.log(arr);
10+
}
11+
trailling_zero([0, 1, 0, 0, 1, 1, 0, 1]);

0 commit comments

Comments
 (0)