why i am getting the recursive error can any one help me out please? the program is given below ccan any one help me out
    4 views (last 30 days)
  
       Show older comments
    
function [path, totalCost, farthestPreviousHop, farthestNextHop] = dijkstra(n, netCostMatrix, s, d, farthestPreviousHop, farthestNextHop) % path: the list of nodes in the path from source to destination; % totalCost: the total cost of the path; % farthestNode: the farthest node to reach for each node after performing % the routing; % n: the number of nodes in the network; % s: source node index; % d: destination node index;
 clear;
 noOfNodes  = 50;
 rand('state', 0);
figure(1);
clf;
hold on;
L = 1000;
R = 200; % maximum range;
 netXloc = rand(1,noOfNodes)*L;
netYloc = rand(1,noOfNodes)*L;
for i = 1:noOfNodes
     plot(netXloc(i), netYloc(i), '.');
     text(netXloc(i), netYloc(i), num2str(i));
     for j = 1:noOfNodes
         distance = sqrt((netXloc(i) - netXloc(j))^2 + (netYloc(i) - netYloc(j))^2);
         if distance <= R
             matrix(i, j) = 1;   % there is a link;
             line([netXloc(i) netXloc(j)], [netYloc(i) netYloc(j)], 'LineStyle', ':');
         else
             matrix(i, j) = inf;
         end;
     end;
 end;
% 
% 
 activeNodes = [];
 for i = 1:noOfNodes,
     % initialize the farthest node to be itself;
    farthestPreviousHop(i) = i;     % used to compute the RTS/CTS range;
     farthestNextHop(i) = i;
 end;
[path, totalCost, farthestPreviousHop, farthestNextHop] = dijkstra(noOfNodes, matrix, 46, 15, farthestPreviousHop, farthestNextHop); % if length(path) ~= 0 for i = 1:(length(path)-1) line([netXloc(path(i)) netXloc(path(i+1))], [netYloc(path(i)) netYloc(path(i+1))], 'Color','r','LineWidth', 0.50, 'LineStyle', '-.'); end; end; hold off;
    return
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % all the nodes are un-visited; visited(1:n) = 0;
distance(1:n) = inf; % it stores the shortest distance between each node and the source node; parent(1:n) = 0;
distance(s) = 0; for i = 1:(n-1), temp = []; for h = 1:n, if visited(h) == 0 % in the tree; temp=[temp distance(h)]; else temp=[temp inf]; end end; [t, u] = min(temp); % it starts from node with the shortest distance to the source; visited(u) = 1; % mark it as visited; for v = 1:n, % for each neighbors of node u; if ( ( netCostMatrix(u, v) + distance(u)) < distance(v) ) distance(v) = distance(u) + netCostMatrix(u, v); % update the shortest distance when a shorter path is found parent(v) = u; % update its parent; end; end; end;
path = []; if parent(d) ~= 0 % if there is a path! t = d; path = [d]; while t ~= s p = parent(t); path = [p path];
        if netCostMatrix(t, farthestPreviousHop(t)) < netCostMatrix(t, p)
            farthestPreviousHop(t) = p;
        end;
        if netCostMatrix(p, farthestNextHop(p)) < netCostMatrix(p, t)
            farthestNextHop(p) = t;
        end;
        t = p;      
    end;
end;
totalCost = distance(d);
return;
0 Comments
Answers (0)
See Also
Categories
				Find more on Startup and Shutdown in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!