日期:2014-05-20  浏览次数:20621 次

如何用多条链表构造一个图?????
链表一:1--2--5---7---9----12
链表二:3---2---5---8---10
链表三:2----8---5----7----6---9
节点之间的边是双向的
请高手帮忙这样的的链表java如何构造出一个图

------解决方案--------------------
给节点多加几个类似指针的引用
然后根据链表的链接关系给引用赋值
------解决方案--------------------
给每个点添加一个边链表,记录连接到该点的边,每个边对象则记录它两端的点的索引
------解决方案--------------------
不知道你的节点能不能自己定义,如果能的话,定义一个有两个容器类分别装载进和出的下一个节点(你这里写一个也行,因为是双向的),这样图应该能构造出来了吧
------解决方案--------------------
定义节点的类,里面定义两个容器,一个用来存放指向的另一个节点(数据结构中所谓的出度),另一个容器用来存放指向自己的节点(入度)。接下来,定义这个类型的一个容器,遍历链表把所有点存进去(不要重复),接下来,根据这个容器里节点的顺序,一个一个找他的出度入度,分别存进他的两个容器,这样就构成一张图了。小弟初学java,不知道这样做跟楼主意思是否一样。
------解决方案--------------------
Java code

//节点间的边
class Edge{
    public Node node;//边指向的节点
     public double cost;//权重
}

class Node{
   public String name;//节点名字
   public List<Edge> prev;//节点的前链
   public List<Edge> next;//节点后链
   public double dist;//节点耗费

}