File tree Expand file tree Collapse file tree 3 files changed +85
-1
lines changed Expand file tree Collapse file tree 3 files changed +85
-1
lines changed Original file line number Diff line number Diff line change 1
1
{
2
- "presets" : [" stage-1" ]
2
+ "presets" : [" es2015 " , " stage-1" ]
3
3
}
Original file line number Diff line number Diff line change
1
+ {
2
+ "name" : " symbol table" ,
3
+ "version" : " 0.0.1"
4
+ }
Original file line number Diff line number Diff line change
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')
You can’t perform that action at this time.
0 commit comments