Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
63
Task/Deepcopy/OxygenBasic/deepcopy.basic
Normal file
63
Task/Deepcopy/OxygenBasic/deepcopy.basic
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
'DEEP COPY FOR A RECURSIVE TREE STRUCTURE
|
||||
|
||||
uses console
|
||||
|
||||
class branches
|
||||
'
|
||||
static int count
|
||||
int level
|
||||
int a,b,c
|
||||
branches*branch1
|
||||
branches*branch2
|
||||
'
|
||||
method constructor(int n)
|
||||
=========================
|
||||
level=n
|
||||
count++
|
||||
output count tab level cr
|
||||
if level>0
|
||||
new branches n1(n-1)
|
||||
new branches n2(n-1)
|
||||
@branch1=@n1
|
||||
@branch2=@n2
|
||||
endif
|
||||
...
|
||||
end method
|
||||
'
|
||||
method destructor
|
||||
=================
|
||||
if level>0
|
||||
del branch1
|
||||
del branch2
|
||||
endif
|
||||
...
|
||||
end method
|
||||
'
|
||||
method RecurseCopy(int n, branches *dc, *sc)
|
||||
============================================
|
||||
dc.level=sc.level
|
||||
dc.a=sc.a
|
||||
dc.b=sc.b
|
||||
dc.c=sc.c
|
||||
if n>0
|
||||
RecurseCopy n-1, byval @dc.branch1, byval @sc.branch1
|
||||
RecurseCopy n-1, byval @dc.branch2, byval @sc.branch2
|
||||
endif
|
||||
end method
|
||||
'
|
||||
method DeepCopy() as branches*
|
||||
==============================
|
||||
new branches dc(level)
|
||||
RecurseCopy level,dc,this
|
||||
return @dc
|
||||
end method
|
||||
'
|
||||
end class
|
||||
|
||||
output "count" tab "level" tab "(original)" cr
|
||||
new branches br(3)
|
||||
output "count" tab "level" tab "(copy)" cr
|
||||
branches *bc = br.DeepCopy
|
||||
pause
|
||||
del bc
|
||||
del br
|
||||
Loading…
Add table
Add a link
Reference in a new issue