Skip to content

Commit 1dd6a4c

Browse files
committed
chapter 05: [LinkedLists]
1 parent 77219d3 commit 1dd6a4c

13 files changed

+295
-2
lines changed

README.md

+2
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,6 @@ Work in Progress.
3838

3939
* Right click on the html file you would like to see the examples, right click and 'Open with Chrome (or any other browser)'
4040

41+
<img src="examples/examples-screenshot.png">
42+
4143
Happy Coding!

examples/chapter05/01-LinkedList.html

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="UTF-8">
5+
<title></title>
6+
</head>
7+
<body>
8+
<script src="./../PacktDataStructuresAlgorithms.min.js"></script>
9+
<script src="01-LinkedList.js"></script>
10+
</body>
11+
</html>

examples/chapter05/01-LinkedList.js

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
const { LinkedList } = PacktDataStructuresAlgorithms;
2+
3+
const list = new LinkedList();
4+
5+
console.log('push element 15');
6+
list.push(15);
7+
8+
console.log('list.indexOf(15) => ', list.indexOf(15));
9+
10+
console.log('push element 10');
11+
list.push(10);
12+
13+
console.log('list.toString() => ', list.toString());
14+
console.log('list.indexOf(10) => ', list.indexOf(10));
15+
16+
console.log('push element 13');
17+
list.push(13);
18+
19+
console.log('list.toString() => ', list.toString());
20+
console.log('list.indexOf(13) => ', list.indexOf(13));
21+
console.log('list.indexOf(10) => ', list.indexOf(10));
22+
23+
console.log('push elements 11 and 12');
24+
list.push(11);
25+
list.push(12);
26+
27+
console.log('list.toString() => ', list.toString());
28+
console.log('list.removeAt(1) => ', list.removeAt(1));
29+
console.log('list.toString() => ', list.toString());
30+
console.log('list.removeAt(3) => ', list.removeAt(3));
31+
console.log('list.toString() => ', list.toString());
32+
33+
console.log('push element 14');
34+
list.push(14);
35+
36+
console.log('list.toString() => ', list.toString());
37+
console.log('insert element 16 pos 0 => ', list.insert(16, 0));
38+
console.log('list.toString() => ', list.toString());
39+
console.log('insert element 17 pos 1 => ', list.insert(17, 1));
40+
console.log('list.toString() => ', list.toString());
41+
console.log('insert element 18 pos list.size() => ', list.insert(18, list.size()));
42+
console.log('list.toString() => ', list.toString());
43+
console.log('remove element 16 => ', list.remove(16));
44+
console.log('list.toString() => ', list.toString());
45+
console.log('remove element 11 => ', list.remove(11));
46+
console.log('list.toString() => ', list.toString());
47+
console.log('remove element 18 => ', list.remove(18));
48+
console.log('list.toString() => ', list.toString());
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="UTF-8">
5+
<title></title>
6+
</head>
7+
<body>
8+
<script src="./../PacktDataStructuresAlgorithms.min.js"></script>
9+
<script src="02-DoublyLinkedList.js"></script>
10+
</body>
11+
</html>
+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
const { DoublyLinkedList } = PacktDataStructuresAlgorithms;
2+
3+
const list = new DoublyLinkedList();
4+
5+
console.log('push element 15');
6+
list.push(15);
7+
console.log('list.toString() => ', list.toString());
8+
console.log('list.inverseToString() => ', list.inverseToString());
9+
10+
console.log('push element 16');
11+
list.push(16);
12+
console.log('list.toString() => ', list.toString());
13+
console.log('list.inverseToString() => ', list.inverseToString());
14+
15+
console.log('push element 17');
16+
list.push(17);
17+
console.log('list.toString() => ', list.toString());
18+
console.log('list.inverseToString() => ', list.inverseToString());
19+
20+
console.log('insert element 13 pos 0 => ', list.insert(13, 0));
21+
console.log('list.toString() => ', list.toString());
22+
console.log('list.inverseToString() => ', list.inverseToString());
23+
24+
console.log('insert element 18 pos 4 => ', list.insert(18, 4));
25+
console.log('list.toString() => ', list.toString());
26+
console.log('list.inverseToString() => ', list.inverseToString());
27+
28+
console.log('insert element 14 pos 1 => ', list.insert(14, 1));
29+
console.log('list.toString() => ', list.toString());
30+
console.log('list.inverseToString() => ', list.inverseToString());
31+
32+
console.log('list.removeAt(0) => ', list.removeAt(0));
33+
console.log('list.toString() => ', list.toString());
34+
console.log('list.inverseToString() => ', list.inverseToString());
35+
36+
console.log('list.removeAt(list.size() - 1) => ', list.removeAt(list.size() - 1));
37+
console.log('list.toString() => ', list.toString());
38+
console.log('list.inverseToString() => ', list.inverseToString());
39+
40+
console.log('list.removeAt(1) => ', list.removeAt(1));
41+
console.log('list.toString() => ', list.toString());
42+
console.log('list.inverseToString() => ', list.inverseToString());
43+
44+
console.log('remove element 16 => ', list.remove(16));
45+
console.log('list.toString() => ', list.toString());
46+
console.log('list.inverseToString() => ', list.inverseToString());
47+
48+
console.log('remove element 14 => ', list.remove(14));
49+
console.log('list.toString() => ', list.toString());
50+
console.log('list.inverseToString() => ', list.inverseToString());
51+
52+
console.log('remove element 17 => ', list.remove(17));
53+
console.log('list.toString() => ', list.toString());
54+
console.log('list.inverseToString() => ', list.inverseToString());
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="UTF-8">
5+
<title></title>
6+
</head>
7+
<body>
8+
<script src="./../PacktDataStructuresAlgorithms.min.js"></script>
9+
<script src="03-CircularLinkedList.js"></script>
10+
</body>
11+
</html>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
const { CircularLinkedList } = PacktDataStructuresAlgorithms;
2+
3+
const list = new CircularLinkedList();
4+
5+
console.log('push element 15');
6+
list.push(15);
7+
console.log('list.toString() => ', list.toString());
8+
9+
console.log('push element 16');
10+
list.push(16);
11+
console.log('list.toString() => ', list.toString());
12+
13+
console.log('insert element 14 pos 0 => ', list.insert(14, 0));
14+
console.log('list.toString() => ', list.toString());
15+
16+
console.log('insert element 14.5 pos 1 => ', list.insert(14.5, 1));
17+
console.log('list.toString() => ', list.toString());
18+
19+
console.log('insert element 17 pos 4 => ', list.insert(17, 4));
20+
console.log('list.toString() => ', list.toString());
21+
22+
console.log('list.removeAt(0) => ', list.removeAt(0));
23+
console.log('list.toString() => ', list.toString());
24+
25+
console.log('list.removeAt(1) => ', list.removeAt(1));
26+
console.log('list.toString() => ', list.toString());
27+
28+
console.log('list.removeAt(2) => ', list.removeAt(2));
29+
console.log('list.toString() => ', list.toString());
30+
31+
console.log('list.indexOf(14.5) => ', list.indexOf(14.5));
32+
console.log('list.indexOf(16) => ', list.indexOf(16));
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="UTF-8">
5+
<title></title>
6+
</head>
7+
<body>
8+
<script src="./../PacktDataStructuresAlgorithms.min.js"></script>
9+
<script src="04-SortedLinkedList.js"></script>
10+
</body>
11+
</html>
+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
const { SortedLinkedList } = PacktDataStructuresAlgorithms;
2+
const { util } = PacktDataStructuresAlgorithms;
3+
4+
const list = new SortedLinkedList();
5+
6+
console.log('');
7+
for (let i = 5; i > 0; i--) {
8+
list.push(i);
9+
}
10+
11+
console.log('list after pushing 5, 4, 3, 2, and 1 => ', list.toString());
12+
13+
console.log('list.removeAt(1) => ', list.removeAt(1));
14+
15+
console.log('remove element 16 => ', list.remove(5));
16+
17+
console.log('list.toString() => ', list.toString());
18+
19+
// ------- Example 02
20+
21+
class MyObj {
22+
constructor(el1, el2) {
23+
this.el1 = el1;
24+
this.el2 = el2;
25+
}
26+
toString() {
27+
return `${this.el1.toString()}|${this.el2.toString()}`;
28+
}
29+
}
30+
31+
function myObjCompare(a, b) {
32+
return a.toString().localeCompare(b.toString());
33+
}
34+
35+
const ds = new SortedLinkedList(util.defaultEquals, myObjCompare);
36+
37+
console.log('*** SortedLinkedList with custom sorting function');
38+
39+
ds.push(new MyObj(3, 4));
40+
console.log('push MyObj(3, 4)');
41+
console.log('list.toString() => ', ds.toString());
42+
43+
ds.push(new MyObj(1, 2));
44+
console.log('push MyObj(1, 2)');
45+
console.log('list.toString() => ', ds.toString());
46+
47+
ds.push(new MyObj(5, 6));
48+
console.log('push MyObj(5, 6)');
49+
console.log('list.toString() => ', ds.toString());
50+
51+
ds.insert(new MyObj(0, 0), 4);
52+
console.log('insert MyObj(0, 0) pos 4 (pos ignored)');
53+
console.log('list.toString() => ', ds.toString());
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="UTF-8">
5+
<title></title>
6+
</head>
7+
<body>
8+
<script src="./../PacktDataStructuresAlgorithms.min.js"></script>
9+
<script src="05-StackLinkedList.js"></script>
10+
</body>
11+
</html>
+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
const { StackLinkedList } = PacktDataStructuresAlgorithms;
2+
3+
const stack = new StackLinkedList();
4+
5+
console.log('stack.isEmpty() => ', stack.isEmpty()); // outputs true
6+
7+
stack.push(5);
8+
stack.push(8);
9+
10+
console.log('stack after push 5 and 8 => ', stack.toString());
11+
12+
console.log('stack.peek() => ', stack.peek()); // outputs 8
13+
14+
stack.push(11);
15+
16+
console.log('stack.size() after push 11 => ', stack.size()); // outputs 3
17+
console.log('stack.isEmpty() => ', stack.isEmpty()); // outputs false
18+
19+
stack.push(15);
20+
21+
stack.pop();
22+
stack.pop();
23+
24+
console.log('stack.size() after push 15 and pop twice => ', stack.size()); // outputs 2

examples/examples-screenshot.png

559 KB
Loading

examples/index.html

+27-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
<head>
55
<meta charset="UTF-8">
6-
<title>DataStructures and Algorithms with JavaScript</title>
6+
<title>Data Structures and Algorithms with JavaScript</title>
77
<meta name="viewport" content="width=device-width, initial-scale=1.0">
88
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
99
<link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.indigo-pink.min.css">
@@ -43,7 +43,7 @@
4343
<a href="#scroll-tab-3" class="mdl-layout__tab">03</a>
4444
<a href="#scroll-tab-4" class="mdl-layout__tab">04</a>
4545
<a href="#scroll-tab-5" class="mdl-layout__tab">05</a>
46-
<a href="#scroll-tab-5" class="mdl-layout__tab">06</a>
46+
<a href="#scroll-tab-6" class="mdl-layout__tab">06</a>
4747
</div>
4848
</header>
4949
<main class="mdl-layout__content">
@@ -127,6 +127,31 @@
127127
</div>
128128
</section>
129129
<section class="mdl-layout__tab-panel" id="scroll-tab-5">
130+
<div class="page-content">
131+
<div class="page-content mdl-layout--fixed-drawer">
132+
<div class="mdl-layout__drawer is-visible">
133+
<nav class="mdl-navigation">
134+
<a class="mdl-navigation__link" href="chapter05/01-LinkedList.html">01-LinkedList</a>
135+
<a class="mdl-navigation__link" href="chapter05/02-DoublyLinkedList.html">02-DoublyLinkedList</a>
136+
<a class="mdl-navigation__link" href="chapter05/03-CircularLinkedList.html">03-CircularLinkedList</a>
137+
<a class="mdl-navigation__link" href="chapter05/04-SortedLinkedList.html">04-SortedLinkedList</a>
138+
<a class="mdl-navigation__link" href="chapter05/05-StackLinkedList.html">05-StackLinkedList</a>
139+
</nav>
140+
</div>
141+
</div>
142+
</div>
143+
</section>
144+
<section class="mdl-layout__tab-panel" id="scroll-tab-6">
145+
<div class="page-content">
146+
Soon.
147+
</div>
148+
</section>
149+
<section class="mdl-layout__tab-panel" id="scroll-tab-7">
150+
<div class="page-content">
151+
Soon.
152+
</div>
153+
</section>
154+
<section class="mdl-layout__tab-panel" id="scroll-tab-8">
130155
<div class="page-content">
131156
Soon.
132157
</div>

0 commit comments

Comments
 (0)