R:控制结构(求最大连通子图)

输入此图,求输出下图:

R程序如下:
data <- matrix(0,5,5)
data[1,2] <- 1
data[1,3] <- 1
data[2,3] <- 1
data[4,5] <- 1
data = data + t(data)
n <- 1:5
visited.num <- 0
visited.vec <- NULL
for(i in 1:5){
visited <- c(i)
unvisited <- n[data[i,]==1]
while(length(unvisited)>0){
x <- unvisited[1]
visited <- union (visited,x)
unvisited <- unvisited[-1]
y <- n[data[x,]==1]
y <- setdiff(y,visited)
unvisited <- union(unvisited,y)
}
temp <- length(visited)
if(temp>visited.num){
visited.num = temp
visited.vec = visited
}
}
visited <- sort(visited.vec)
ret <- data[visited,visited]
rownames(ret) <- visited
colnames(ret) <- visited
ret

浙公网安备 33010602011771号