dfs.m

来自「利用GOSSIP协议可以实现无线节点之间的路由选择.」· M 代码 · 共 33 行

M
33
字号
function [] = DFS(r)
global connMatrix;
global visited;
global xLocation;
global yLocation;
global floodProb;
global savedTransmission;

wait_time = 20000000;

% Get the number of reachable neighbors
neighborNodes = find(connMatrix(r, :) == 1);
% Get the unreached neighbors
neigbborNodes = intersect(neighborNodes, find(visited(:) == 0));
for k = 1:length(neighborNodes),
    line([xLocation(r) xLocation(neighborNodes(k))], [yLocation(r) yLocation(neighborNodes(k))]);
end;
drawnow;
for k = 1:length(neighborNodes),
    if (visited(neighborNodes(k)) == 0), 
        visited(neighborNodes(k)) = 1;
        for i=1:wait_time j=i; end
        floodProb = 9 / length(neighborNodes);
        p = rand;
        if p <= floodProb,
            % broadcast again;
            DFS(neighborNodes(k));
        else
            savedTransmission = savedTransmission + 1;
        end;
    end;
end;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?