Skip to content

Commit cfb49b3

Browse files
committed
added stack chapter 03
1 parent 3ce70a5 commit cfb49b3

File tree

15 files changed

+502
-62
lines changed

15 files changed

+502
-62
lines changed

dist/js/app.js

Lines changed: 0 additions & 18 deletions
This file was deleted.

dist/ts/app.js

Lines changed: 0 additions & 7 deletions
This file was deleted.

gulpfile.babel.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import gulp from 'gulp';
2+
import del from 'del';
3+
import babelify from 'babelify';
4+
import browserify from 'browserify';
5+
import source from 'vinyl-source-stream';
6+
import glob from 'glob';
7+
import es from 'event-stream';
8+
9+
const paths = {
10+
scriptsJs: 'lib/js/**/*.js',
11+
dist: 'dist/',
12+
distJs: 'dist/js'
13+
};
14+
15+
gulp.task('clean', fn => del(paths.dist, fn));
16+
17+
gulp.task('scripts', ['clean'], done => {
18+
glob(paths.scriptsJs, function(err, files) {
19+
if (err) done(err);
20+
21+
var tasks = files.map(function(entry) {
22+
return browserify({ entries: [entry] })
23+
.transform(babelify)
24+
.bundle()
25+
.pipe(source(entry))
26+
.pipe(gulp.dest(paths.dist));
27+
});
28+
es.merge(tasks).on('end', done);
29+
});
30+
});
31+
32+
gulp.task('default', ['scripts']);

html/chapter03/index.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="UTF-8">
5+
<title></title>
6+
</head>
7+
<body>
8+
<script src="index.js" type="module"></script>
9+
</body>
10+
</html>

html/chapter03/index.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import Stack from './../../lib/js/data-structures/stack.js';
2+
3+
const stack = new Stack();
4+
5+
console.log(stack);

lib/js/app.js

Lines changed: 0 additions & 5 deletions
This file was deleted.

lib/js/data-structures/stack.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
const Stack = (() => {
2+
let items;
3+
class DS {
4+
constructor() {
5+
items = [];
6+
}
7+
push(element) {
8+
items.push(element);
9+
}
10+
11+
pop() {
12+
return items.pop();
13+
}
14+
15+
peek() {
16+
return items[items.length - 1];
17+
}
18+
19+
isEmpty() {
20+
return items.length === 0;
21+
}
22+
23+
size() {
24+
return items.length;
25+
}
26+
27+
clear() {
28+
items = [];
29+
}
30+
31+
toArray() {
32+
return items;
33+
}
34+
35+
toString() {
36+
return items.toString();
37+
}
38+
}
39+
return DS;
40+
})();
41+
42+
export default Stack;

lib/ts/app.ts

Lines changed: 0 additions & 5 deletions
This file was deleted.

lib/ts/data-structures/stack.ts

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
export default class Stack {
2+
private items: any[];
3+
4+
constructor() {
5+
this.items = [];
6+
}
7+
8+
push(element: any) {
9+
this.items.push(element);
10+
}
11+
12+
pop() {
13+
return this.items.pop();
14+
}
15+
16+
peek() {
17+
return this.items[this.items.length - 1];
18+
}
19+
20+
isEmpty() {
21+
return this.items.length === 0;
22+
}
23+
24+
size() {
25+
return this.items.length;
26+
}
27+
28+
clear() {
29+
this.items = [];
30+
}
31+
32+
toArray() {
33+
return this.items;
34+
}
35+
36+
toString() {
37+
return this.items.toString();
38+
}
39+
}

lib/ts/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import Stack from './data-structures/stack';
2+
3+
export { Stack };

0 commit comments

Comments
 (0)