求Matlab大神二叉樹程式幫我看看哪兒能改引數從而改變角度大小

時間 2022-02-01 20:41:02

1樓:

n和b都能改,n控制二叉樹的層數,b控制角度,分叉角度的一般.程式中的a似乎沒用到

n=3,b=pi/6時影象如下

2樓:我行我素

function tree(n)

a=pi/n;b=pi/n;

x1=0;y1=0;

x2=0;y2=1;

plot([x1,x2],[y1,y2])hold on

[x,y]=tree1(x1,y1,x2,y2,a,b);

hold on

w=tree2(x,y);

w1=w(:,1:4);

w2=w(:,5:8);

w=[w1;w2];

for k=1:n

for i=1:2^k

[x,y]=tree1(w(i,1),w(i,2),w(i,3),w(i,4),a,b);

w(i,:)=tree2(x,y);

endw1=w(:,1:4);

w2=w(:,5:8);

w=[w1;w2];

endfunction [x,y]=tree1(x1,y1,x2,y2,a,b)

l=sqrt((x2-x1)^2+(y2-y1)^2);

if (x2-x1)==0

a=pi/2;

else if (x2-x1)<0

a=pi+atan((y2-y1)/(x2-x1));

else

a=atan((y2-y1)/(x2-x1));

endend

x3=x2+l*2/3*cos(a+b);

y3=y2+l*2/3*sin(a+b);

x4=x2+l*2/3*cos(a-b);

y4=y2+l*2/3*sin(a-b);

a=[x3,x2,x4];

b=[y3,y2,y4];

plot(a,b)

axis equal

hold on

x=[x2,x3,x4];

y=[y2,y3,y4];

function w=tree2(x,y)a1=x(1);b1=y(1);

a2=x(2);b2=y(2);

a3=x(1);b3=y(1);

a4=x(3);b4=y(3);

w=[a1,b1,a2,b2,a3,b3,a4,b4];

資料結構,二叉樹的先序遍歷, 大神幫我看下我用棧編的這個程式**錯了??

求程式 線索二叉樹插入刪除運算,線索二叉樹的插入和刪除

include include malloc.h include windows.h define maxsize 20 規定樹中結點的最大數目 typedef struct nodebithptr bithptr q maxsize 建隊,儲存已輸入的結點的地址 bithptr creattree...

關於遞迴演算法求二叉樹深度演算法,關於求二叉樹深度的遞迴演算法

int height bitree t if 中的n應該是v。其思想是,一個節點的深度是他的兩個子節點中深度的最大值再加上1。這個演算法中u得到其左子數的深度,v獲得右子樹的深度。則這個節點的深度就是u和v中最大的再加上1。要想獲得樹的深度,就先獲得這個樹中根節點的兩個兒子的深度,比較兩個兒子的深度...

求個二叉樹遍歷的VB程式

rebacktree 根據二叉樹的先序遍歷和中序遍歷建立二叉樹。rebacktree1 根據二叉樹的後序序遍歷和中序遍歷建立二叉樹。include stdio.h include stdlib.h typedef struct node node,nodep void midorder nodep ...