题目描述:
满二叉树的每个点的坐标规定如图所示,如给定两个点A和B,请找出A点和B点所有的公共根节点。
代码如下:
主函数
% 满二叉树寻找两点的共同根节点
clear all
global A flag
A = [];
flag = 0;
point_1 = input('输入第一个点位置:');
n = point_1(1);
m = point_1(2);
findroot(n,m);
point_2 = input('输入第二个点位置:');
n = point_2(1);
m = point_2(2);
flag=0;
findroot(n,m);
S = size(A);
loc = [];
%A中存着两点的所有根节点,需从[1 1]处分开
for i = 1:S(1)
if isequal(A(i,:),[1 1])
loc = [loc i];
end
end
[Lia,Locb] = ismember(A(1:loc(2)-1,:),A(loc(2):end,:),'row');%寻找两点共同的根节点
all_root = A(Lia,:);%存储所有根节点位置
disp('两点共同的根节点');
disp(all_root);
调用函数
function y = findroot(n,m)
%n为该点所在的行数,m为该点所在列数
%