yaoyi 发表于 2007-12-16 15:00

关于函数的递归调用 拟实现二叉树遍历

我是刚接触matlab的新人,编了一个小程序,但是没能实现预期效果,不知道问题出在哪,请各位大人指点。

(也许有高人看到这个帖子会嗤之以鼻,可是对我这样的新人来说,我实在不知道是哪方面的问题,所以连查资料都不知道该怎么查。如果坏了这里的规矩,还请各位版主多见谅!)
=====================
preorder.m
-----------------------------------------------
function p = preorder(f,i,r)
if i < 16
    p(1,r) = f(1,i);
    preorder(f,2*i,r+1);
    preorder(f,2*i+1,r+1);
end

====================
主函数
---------------------------------------
F = zeros(1,16);
for j = 1:16
    F(1,j)=j;
end

r = 1;
g = preorder(F, 1, 1);

======================
结果:g 大小为1*1 值为1
设置断点调试时p的值变化如下
1
0 2
0 0 4
0 0 0 8
0 0 0 9
0 0 5
0 0 0 10
0 0 0 11
0 3
0 0 6
0 0 0 12
0 0 0 13
0 0 7
0 0 0 14
0 0 0 15
之后workspace ArrayEditor:p窗口显示Variable is out of scope

[ 本帖最后由 eight 于 2007-12-17 20:34 编辑 ]

sigma665 发表于 2007-12-16 15:42

回复 #1 yaoyi 的帖子

对你的算法不了解...

yaoyi 发表于 2007-12-16 21:14

谢谢楼上的关注~
页: [1]
查看完整版本: 关于函数的递归调用 拟实现二叉树遍历