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
  
  

 

posted @ 2017-03-12 21:21  工科女的瞎忙活  阅读(1471)  评论(0编辑  收藏  举报