📄 emp5_30.cpp
字号:
// emp5_30
#include "btreint.h";
const int n=25;
int fib(int n)
{
if (n<2) return n;
else return (fib(n-1)+fib(n-2));
}
int FibIndex(int n)
{
int k;
k=0;
while (fib(k)<n) k=k+1;
return k;
}
void createt(bitre &t,int i,int p,int q)
{
t=(bitre)malloc(sizeof(struct bnode));
t->data=i;
if (q==0) t->lchild=NULL;
else createt(t->lchild,i-q,q,p-q);
if (p==1) t->rchild=NULL;
else createt(t->rchild,i+q,p-q,2*q-p);
}
void main()
{
bitre t;
int a,m,i,p,q;
a=FibIndex(n+1);
printf("a=%d",a);
getch();
i=fib(a-1);
p=fib(a-2);
q=fib(a-3);
m=n+1-(i+p);
t=(bitre)malloc(sizeof(struct bnode));
t->data=i;
createt(t->lchild,i-q,q,p-q);
if (2*(p-1)+1>n) createt(t->rchild,i+m+q,p-q,2*q-p);
else createt(t->rchild,i+m+q,p-q,2*q-p);
display_bitre("bitre",t);
getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -