summaryrefslogtreecommitdiff
path: root/37/CH8/EX8.5/s5.sci
blob: 668d8e6a0d40eaad744b83e6cbecea7f7ed1aa9e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//Warshall's Algorithm
funcprot(0)
function[path]=transclose(adj,n)
  for  i=1:n
    for j=1:n
      path((i-1)*n+j)=adj((i-1)*n+j);
    end
  end
  for k=1:n
    for  i=1:n
      if(path((i-1)*n+k)==1)
        for j=1:n
          path((i-1)*n+j)=path((i-1)*n+j)|path((k-1)*n+j);
        end
      end
    end
  end
  printf("Transitive closure for the given graph is:\n");
  for  i=1:n
    printf("For vertex %d \n",i);
    for j=1:n
       printf("%d %d is %d\n",i,j,path((i-1)*n+j));
    end
  end
endfunction
//Calling Routine:
n=3;
adj=[0 1 0 0 0 1 0 0 0]
path=transclose(adj,n)