Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
1
Task/Deepcopy/Nim/deepcopy-1.nim
Normal file
1
Task/Deepcopy/Nim/deepcopy-1.nim
Normal file
|
|
@ -0,0 +1 @@
|
|||
deepCopy(newObj, obj)
|
||||
34
Task/Deepcopy/Nim/deepcopy-2.nim
Normal file
34
Task/Deepcopy/Nim/deepcopy-2.nim
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
type
|
||||
Node[T] = ref TNode[T]
|
||||
TNode[T] = object
|
||||
data: T
|
||||
left, right: Node[T]
|
||||
|
||||
proc newNode[T](data: T; left, right: Node[T] = nil): Node[T] =
|
||||
Node[T](data: data, left: left, right: right)
|
||||
|
||||
proc preorder[T](n: Node[T]): seq[T] =
|
||||
if n == nil: @[]
|
||||
else: @[n.data] & preorder(n.left) & preorder(n.right)
|
||||
|
||||
var tree = 1.newNode(
|
||||
2.newNode(
|
||||
4.newNode(
|
||||
7.newNode),
|
||||
5.newNode),
|
||||
3.newNode(
|
||||
6.newNode(
|
||||
8.newNode,
|
||||
9.newNode)))
|
||||
|
||||
var tree2: Node[int]
|
||||
tree2.deepCopy tree
|
||||
tree2.data = 10
|
||||
tree2.left.data = 20
|
||||
tree2.right.left.data = 90
|
||||
|
||||
echo "Tree2:"
|
||||
echo preorder tree2
|
||||
|
||||
echo "Tree:"
|
||||
echo preorder tree
|
||||
Loading…
Add table
Add a link
Reference in a new issue