Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 8c3e7d2

Browse files
author
胡正伟
committed
temp save
1 parent d68c88f commit 8c3e7d2

File tree

3 files changed

+85
-1
lines changed

3 files changed

+85
-1
lines changed

.babelrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"presets": ["stage-1"]
2+
"presets": ["es2015", "stage-1"]
33
}

src/ST/package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"name": "symbol table",
3+
"version": "0.0.1"
4+
}

src/ST/sequentialSearchST.js

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
/**
2+
* Created by zwhu on 15/11/16.
3+
*
4+
* 顺序查找(基于无序链表)
5+
*/
6+
7+
import assert from 'assert'
8+
9+
class Node {
10+
constructor(key, val, next) {
11+
this.key = key
12+
this.val = val
13+
this.next = next
14+
}
15+
}
16+
17+
class sequentialSearchST {
18+
19+
first = null
20+
21+
put(key, val) {
22+
23+
for (let node of this) {
24+
if (key === node.key) {
25+
node.val = val
26+
return
27+
}
28+
}
29+
30+
this.first = new Node(key, val, this.first)
31+
32+
}
33+
34+
get(key) {
35+
36+
console.log(this)
37+
for (let node of this) {
38+
39+
if (key === node.key) {
40+
return node.val
41+
}
42+
}
43+
44+
return null
45+
46+
}
47+
48+
[Symbol.iterator]() {
49+
50+
let current = this.first
51+
return ({
52+
next() {
53+
if (current) {
54+
let {key, val} = current
55+
current = current.next
56+
return {
57+
done: false,
58+
val: {key, val}
59+
}
60+
} else {
61+
return {
62+
done: true
63+
}
64+
}
65+
}
66+
})
67+
}
68+
69+
}
70+
71+
let st = new sequentialSearchST()
72+
73+
assert.equal(st.get('a'), null)
74+
st.put('a', '1')
75+
assert.equal(st.get('a'), '1')
76+
//st.put('b', '2')
77+
//assert.equal(st.get('b'), '2')
78+
//st.put('b', '3')
79+
//assert.equal(st.get('a'), '1')
80+
//assert.equal(st.get('b'), '3')

0 commit comments

Comments
 (0)