1- import { Tree , buchheim } from './Tree' ;
1+ import { TreeNode , buchheim } from '@/lib/tree/Tree' ;
2+
23export function getTree ( n , algo = 0 , r = 0 ) {
34 if ( algo === 0 )
45 return buchheim ( fib ( n ) ) ;
@@ -13,7 +14,7 @@ export function getTree(n,algo=0,r=0){
1314}
1415
1516function fib ( n ) {
16- let tree = new Tree ( n , [ ] , n + "" ) ;
17+ let tree = new TreeNode ( n , [ ] , n + "" ) ;
1718 if ( n < 2 ) return tree ;
1819 tree . children . push ( fib ( n - 1 ) ) ;
1920 tree . children . push ( fib ( n - 2 ) ) ;
@@ -22,7 +23,7 @@ function fib(n){
2223}
2324
2425function sib ( n ) {
25- let tree = new Tree ( n , [ ] ) ;
26+ let tree = new TreeNode ( n , [ ] ) ;
2627 if ( n < 3 ) return tree ;
2728 tree . children . push ( sib ( n - 2 ) ) ;
2829 tree . children . push ( sib ( n - 3 ) ) ;
@@ -32,36 +33,36 @@ function sib(n){
3233
3334function NcR ( n , r ) {
3435 if ( r > n )
35- return new Tree ( - 1 , [ ] , "(" + n + "," + r + ")" ) ;
36+ return new TreeNode ( - 1 , [ ] , "(" + n + "," + r + ")" ) ;
3637
3738 if ( n === r )
38- return new Tree ( 1 , [ ] , "(" + n + "," + r + ")" ) ;
39+ return new TreeNode ( 1 , [ ] , "(" + n + "," + r + ")" ) ;
3940
4041 if ( r === 0 )
41- return new Tree ( 1 , [ ] , "(" + n + "," + r + ")" ) ; ;
42+ return new TreeNode ( 1 , [ ] , "(" + n + "," + r + ")" ) ; ;
4243
4344 // nCr(n, r) = nCr(n - 1, r - 1) + nCr(n - 1, r)
44- let tree = new Tree ( 0 , [ ] , "(" + n + "," + r + ")" ) ;
45+ let tree = new TreeNode ( 0 , [ ] , "(" + n + "," + r + ")" ) ;
4546 tree . children . push ( NcR ( n - 1 , r - 1 ) ) ;
4647 tree . children . push ( NcR ( n - 1 , r ) ) ;
4748 tree . node = tree . children [ 0 ] . node + tree . children [ 1 ] . node ;
4849 return tree ;
4950}
5051
5152function derangement ( n ) {
52- if ( n == 0 ) return new Tree ( 1 , [ ] , n + "" ) ;
53- if ( n == 1 ) return new Tree ( 0 , [ ] , n + "" ) ;
54- let tree = new Tree ( 0 , [ ] , n + "" ) ;
53+ if ( n == 0 ) return new TreeNode ( 1 , [ ] , n + "" ) ;
54+ if ( n == 1 ) return new TreeNode ( 0 , [ ] , n + "" ) ;
55+ let tree = new TreeNode ( 0 , [ ] , n + "" ) ;
5556 tree . children . push ( derangement ( n - 1 ) ) ;
5657 tree . children . push ( derangement ( n - 2 ) ) ;
5758 tree . node = ( n - 1 ) * ( tree . children [ 0 ] . node + tree . children [ 1 ] . node ) ;
5859 return tree ;
5960}
6061
6162function bigmod ( n , r ) {
62- if ( r === 0 ) return new Tree ( 1 , [ ] , "(" + n + "," + r + ")" ) ;
63- if ( r === 1 ) return new Tree ( n , [ ] , "(" + n + "," + r + ")" ) ;
64- let tree = new Tree ( 1 , [ ] , "(" + n + "," + r + ")" ) ;
63+ if ( r === 0 ) return new TreeNode ( 1 , [ ] , "(" + n + "," + r + ")" ) ;
64+ if ( r === 1 ) return new TreeNode ( n , [ ] , "(" + n + "," + r + ")" ) ;
65+ let tree = new TreeNode ( 1 , [ ] , "(" + n + "," + r + ")" ) ;
6566 if ( r % 2 === 1 ) {
6667 tree . children . push ( bigmod ( n , ( r - 1 ) / 2 ) ) ;
6768 tree . children . push ( bigmod ( n , ( r - 1 ) / 2 ) ) ;
@@ -77,10 +78,10 @@ function bigmod(n,r){
7778}
7879
7980function stirling2 ( n , r ) {
80- if ( n === r ) return new Tree ( 1 , [ ] , "(" + n + "," + r + ")" ) ;
81- if ( r === 0 ) return new Tree ( 0 , [ ] , "(" + n + "," + r + ")" ) ;
81+ if ( n === r ) return new TreeNode ( 1 , [ ] , "(" + n + "," + r + ")" ) ;
82+ if ( r === 0 ) return new TreeNode ( 0 , [ ] , "(" + n + "," + r + ")" ) ;
8283
83- let tree = new Tree ( 0 , [ ] , "(" + n + "," + r + ")" ) ;
84+ let tree = new TreeNode ( 0 , [ ] , "(" + n + "," + r + ")" ) ;
8485 tree . children . push ( stirling2 ( n - 1 , r ) ) ;
8586 tree . children . push ( stirling2 ( n - 1 , r - 1 ) ) ;
8687 tree . node = tree . children [ 0 ] . node * r + tree . children [ 1 ] . node ;
0 commit comments