输入此图,求输出下图:
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