% Taking number of input nodes from user
n=input('Please enter the number of nodes less than 26 = ');
% Checking for bad input
if n > 26
error('Plzz follow the instructions ')
end
% Defining node numbers interms of Alphabets
alphabets= char(65:1:65+n);
adj=zeros(n,n);
for p=1:n
for q=1:n
adj(p,q)=input(['Enter Weight between [',alphabets(p),']','[',alphabets(q),'] = ']);
end
end
%Coversting status of all nodes to Tentative
for p=1:n
a(p).status=0;
end
temp=[];
acc=[];
% Taking input from user regarding source & destination nodes
s=input('Please enter the source node = ');
t=input('Please enter the destination node = ');
% converting source node to status PERMANANT
a(s).status=1;
path=s;
% if (adj(s,t)==0)
% disp('Source and Destination are Same');
% continue
% end
% Main algorithm of Greedy Dijkstra
for k=1:inf
for h=1:n
if a(h).status==0 % If Unknown
temp=[temp adj(s,h)];
else
temp=[temp inf];
end
end
[aa,bb]=min(temp);
acc=[acc aa];
temp=[];
s=bb;
a(s).status=1;
path=[path s];
if s==t
break
end
end
% Creating dialogue box for Output
helpdlg(['Path : ' alphabets(path) ' Total Cost/Weight : '...
num2str(sum(acc))],'Greedy Dijkstra Algorithm')