问题描述
我的问题是创建每个患者从患病状态到治愈各种患者的状态的图,并将所有患者的图与一条边连接到另一个包含顶部虚拟单顶点的图。帮帮我。
import java.util.*;
import java.util.ArrayList;
class personData {
float personstate,o2level,coughstate,feverstate;
String med1,med2,med3;
personData(float personstate,float o2level,float coughstate,float feverstate,String med1,String med2,String med3){
this.personstate=personstate;
this.o2level=o2level;
this.coughstate=coughstate;
this.feverstate=feverstate;
this.med1=med1;
this.med2=med2;
this.med3=med3;
}
public ArrayList storeInArray(){
ArrayList dtt = new ArrayList();
dtt.add(personstate);
dtt.add(o2level);
dtt.add(coughstate);
dtt.add(feverstate);
dtt.add(med1);
dtt.add(med2);
dtt.add(med3);
return dtt;
}
}
//class to store edges of the weighted graph
class Edge {
ArrayList srcA = new ArrayList();
ArrayList desA= new ArrayList();
int src,dest,weight;
Edge(ArrayList srcA,int src,int dest,ArrayList desA,int weight) {
this.src = src;
this.srcA=srcA;
this.desA=desA;
this.dest = dest;
this.weight = weight;
}
public ArrayList edgeOriginGet(){
return srcA;
}
}
// Graph class
class Graph {
// node of adjacency list
static class Node {
ArrayList desA= new ArrayList();
int value,weight;
Node(int value,int weight) {
this.value = value;
this.desA=desA;
this.weight = weight;
}
};
// define adjacency list
List<List<Node>> adj_list = new ArrayList<>();
//Graph Constructor
public Graph(List<Edge> edges)
{
// adjacency list memory allocation
for (int i = 0; i < edges.size(); i++)
adj_list.add(i,new ArrayList<>());
// add edges to the graph
for (Edge e : edges)
{
// allocate new node in adjacency List from src to dest
adj_list.get(e.src).add(new Node(e.dest,e.desA,e.weight));
}
}
// print adjacency list for the graph
public static void printGraph(Graph graph,List<Edge> edges) {
int src_vertex = 0;
int list_size = graph.adj_list.size();
System.out.println("The contents of the graph:");
while (src_vertex < list_size) {
Edge e = edges.get(src_vertex);
//traverse through the adjacency list and print the edges
for (Node edge : graph.adj_list.get(src_vertex)) {
System.out.print("Vertex:" + src_vertex + e.edgeOriginGet()+" ==> " + edge.value + edge.desA+" (" + edge.weight + ")\t");
}
System.out.println();
src_vertex++;
}
}
}
public class Main{
public static void main (String[] args) {
personData pd1 = new personData(1.1f,95.4f,1.0f,"iver","doxy","pe");
ArrayList dt1 = new ArrayList();
dt1 = new ArrayList<Object>(pd1.storeInArray());
personData pd2 = new personData(1.2f,96.4f,"pe");
ArrayList dt2 = new ArrayList();
dt2 = new ArrayList<Object>(pd2.storeInArray());
personData pd3 = new personData(1.3f,0.0f,"pe");
ArrayList dt3 = new ArrayList();
dt3 = new ArrayList<Object>(pd3.storeInArray());
personData pd4 = new personData(1.4f,97.4f,"pe");
ArrayList dt4 = new ArrayList();
dt4 = new ArrayList<Object>(pd4.storeInArray());
personData pd5 = new personData(1.5f,98.4f,"pe");
ArrayList dt5 = new ArrayList();
dt5 = new ArrayList<Object>(pd5.storeInArray());
List<Edge> edges = Arrays.asList(new Edge(dt1,1,dt2,2),new Edge(dt2,2,dt3,new Edge(dt3,3,dt4,new Edge(dt4,4,dt5,1));
// call graph class Constructor to construct a graph
Graph graph = new Graph(edges);
// print the graph as an adjacency list
Graph.printGraph(graph,edges);
}
}
你可以看到我创建了一个图,但我想创建另一个图并将这两个图连接到包含顶部图的单个顶点;
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)