Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
9
Task/Tree-traversal/Smalltalk/tree-traversal-1.st
Normal file
9
Task/Tree-traversal/Smalltalk/tree-traversal-1.st
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
"Protocol: visiting"
|
||||
EmptyNode>>accept: aVisitor
|
||||
|
||||
EmptyNode>>accept: aVisitor with: anObject
|
||||
^anObject
|
||||
|
||||
"Protocol: enumerating"
|
||||
EmptyNode>>traverse: aVisitorClass do: aBlock
|
||||
^self accept: (aVisitorClass block: aBlock)
|
||||
35
Task/Tree-traversal/Smalltalk/tree-traversal-2.st
Normal file
35
Task/Tree-traversal/Smalltalk/tree-traversal-2.st
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
"Protocol: visiting"
|
||||
Node>>accept: aVisitor
|
||||
^aVisitor visit: self
|
||||
|
||||
Node>>accept: aVisitor with: anObject
|
||||
^aVisitor visit: self with: anObject
|
||||
|
||||
"Protocol: accessing"
|
||||
Node>>data
|
||||
^data
|
||||
|
||||
Node>>data: anObject
|
||||
data := anObject
|
||||
|
||||
Node>>left
|
||||
^left
|
||||
|
||||
Node>>left: aNode
|
||||
left := aNode
|
||||
|
||||
Node>>right
|
||||
^right
|
||||
|
||||
Node>>right: aNode
|
||||
right := aNode
|
||||
|
||||
"Protocol: initialize-release"
|
||||
Node>>initialize
|
||||
super initialize.
|
||||
left := right := EmptyNode new
|
||||
|
||||
"Class side"
|
||||
"Protocol: instance creation"
|
||||
Node class>>data: anObject
|
||||
^self new data: anObject
|
||||
17
Task/Tree-traversal/Smalltalk/tree-traversal-3.st
Normal file
17
Task/Tree-traversal/Smalltalk/tree-traversal-3.st
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
"Protocol: visiting"
|
||||
visit: aNode
|
||||
self subclassResponsibility
|
||||
|
||||
"Protocol: accessing"
|
||||
Visitor>>block: anObject
|
||||
block := anObject
|
||||
|
||||
"Protocol: initialize-release"
|
||||
Visitor>>initialize
|
||||
super initialize.
|
||||
block := [:node | ]
|
||||
|
||||
"Class side"
|
||||
"Protocol: instance creation"
|
||||
Visitor class>>block: aBlock
|
||||
^self new block: aBlock
|
||||
5
Task/Tree-traversal/Smalltalk/tree-traversal-4.st
Normal file
5
Task/Tree-traversal/Smalltalk/tree-traversal-4.st
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
"Protocol: visiting"
|
||||
InOrder>>visit: aNode
|
||||
aNode left accept: self.
|
||||
block value: aNode.
|
||||
aNode right accept: self
|
||||
12
Task/Tree-traversal/Smalltalk/tree-traversal-5.st
Normal file
12
Task/Tree-traversal/Smalltalk/tree-traversal-5.st
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
"Protocol: visiting"
|
||||
LevelOrder>>visit: aNode
|
||||
| queue |
|
||||
queue := OrderedCollection with: aNode.
|
||||
[(queue removeFirst accept: self with: queue) isEmpty] whileFalse
|
||||
|
||||
LevelOrder>>visit: aNode with: aQueue
|
||||
block value: aNode.
|
||||
^aQueue
|
||||
add: aNode left;
|
||||
add: aNode right;
|
||||
yourself
|
||||
5
Task/Tree-traversal/Smalltalk/tree-traversal-6.st
Normal file
5
Task/Tree-traversal/Smalltalk/tree-traversal-6.st
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
"Protocol: visiting"
|
||||
PostOrder>>visit: aNode
|
||||
aNode left accept: self.
|
||||
aNode right accept: self.
|
||||
block value: aNode
|
||||
5
Task/Tree-traversal/Smalltalk/tree-traversal-7.st
Normal file
5
Task/Tree-traversal/Smalltalk/tree-traversal-7.st
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
"Protocol: visiting"
|
||||
PreOrder>>visit: aNode
|
||||
block value: aNode.
|
||||
aNode left accept: self.
|
||||
aNode right accept: self
|
||||
18
Task/Tree-traversal/Smalltalk/tree-traversal-8.st
Normal file
18
Task/Tree-traversal/Smalltalk/tree-traversal-8.st
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
| tree |
|
||||
tree := (Node data: 1)
|
||||
left: ((Node data: 2)
|
||||
left: ((Node data: 4)
|
||||
left: (Node data: 7));
|
||||
right: (Node data: 5));
|
||||
right: ((Node data: 3)
|
||||
left: ((Node data: 6)
|
||||
left: (Node data: 8);
|
||||
right: (Node data: 9))).
|
||||
tree traverse: PreOrder do: [:node | Transcript print: node data; space].
|
||||
Transcript cr.
|
||||
tree traverse: InOrder do: [:node | Transcript print: node data; space].
|
||||
Transcript cr.
|
||||
tree traverse: PostOrder do: [:node | Transcript print: node data; space].
|
||||
Transcript cr.
|
||||
tree traverse: LevelOrder do: [:node | Transcript print: node data; space].
|
||||
Transcript cr.
|
||||
Loading…
Add table
Add a link
Reference in a new issue