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 + -
显示快捷键?