最优二叉树的matlab实现(材料)_二叉树的matlab实现

其他范文 时间:2020-02-27 09:45:41 收藏本文下载本文
【www.daodoc.com - 其他范文】

最优二叉树的matlab实现(材料)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“二叉树的matlab实现”。

%v = [0.8147 0.9058 0.1270 0.9134 0.6324 0.0975 0.2785 0.5469 0.9575 0.9649 0.1576 0.9706 0.9572 0.4854 0.8003];origv = rand(1,7);v=origv;

MAXVAL = 100;ov = zeros(size(v));numOL = length(v);

vv = zeros(1, numOL*2-1);tv = vv;vv(numOL:length(tv))= v;

for i=numOL-1:-1:1

[i1,i2] = findLeast2Val(v+ov);

vv(i)= v(i1)+v(i2);

ov(i1)= MAXVAL;

ov(i2)= MAXVAL;

tv(i1+i)=i;

tv(i2+i)=i;

v = [vv(i),v];

ov = [0,ov];drawtree(tv);pause end drawtree(tv);

function [ind1,ind2]=findLeast2Val(v)len=length(v);

if len==2

ind1=1;ind2=2;

return;end

MIN2=100;MIN1=99;ind1=1;ind2=1;for i=1:len

if v(i)

if v(i)

MIN2 = MIN1;ind2=ind1;

MIN1 = v(i);ind1=i;

end end

function drawtree(treeVec)

treeplot2(treeVec);

count = size(treeVec,2);

[x,y] = treelayout(treeVec);

x = x';

y = y';

name1 = cellstr(num2str((1:count)'));

text(x(:,1), y(:,1), name1, 'VerticalAlignment','bottom','HorizontalAlignment','right')

title({'Level Lines'},'FontSize',12,'FontName','Times New Roman');end

function treeplot2(p,c,d)%TREEPLOT Plot picture of tree.%

TREEPLOT(p)plots a picture of a tree given a row vector of %

parent pointers, with p(i)== 0 for a root.% %

TREEPLOT(P,nodeSpec,edgeSpec)allows optional parameters nodeSpec %

and edgeSpec to set the node or edge color, marker, and linestyle.%

Use '' to omit one or both.% %

Example: %

treeplot([2 4 2 0 6 4 6])%

returns a complete binary tree.% %

See also ETREE, TREELAYOUT, ETREEPLOT.%

Copyright 1984-2009 The MathWorks, Inc.%

$Revision: 5.12.4.3 $ $Date: 2009/04/21 03:26:23 $

[x,y,h]=treelayout(p);f = find(p~=0);pp = p(f);X = [x(f);x(pp);repmat(NaN,size(f))];Y = [y(f);y(pp);repmat(NaN,size(f))];X = X(:);Y = Y(:);

if nargin == 1,n = length(p);

if n

plot(x, y, 'ro', X, Y, 'r-');

else

plot(X, Y, 'r-');

end;else

[~, clen] = size(c);

if nargin

if clen > 1,d = [c(1:clen-1)'-'];

else

d = 'r-';

end;

end;

[~, dlen] = size(d);

if clen>0 && dlen>0

plot(x, y, c, X, Y, d);

elseif clen>0,plot(x, y, c);

elseif dlen>0,plot(X, Y, d);

else

end;end;

% 显示外部节点 k=find(y==min(y));hold on , plot(x(k),y(k),'bs');hold off

xlabel(['height = ' int2str(h)]);axis([0 1 0 1]);

下载最优二叉树的matlab实现(材料)word格式文档
下载最优二叉树的matlab实现(材料).doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文