Java数据结构——图-邻接表
用图-邻接表实现以下功能。有类似需求的也可以参考一下。
结点的关系图如下:
结点类和有参构造方法
/**
* 弧结点,表结点
*/
class arcNode {
String name; //存储相关人物的名字
String relation; //存储相关人物和主人公的关系
arcNode nextNode; //指向下一个结点的地址域
public arcNode(String name, String relation){
this.name = name;
this.relation = relation;
}
}
/**
* 顶点,表头结点
*/
class vexNode {
int E = 0; //表示连接这个顶点的边的数量
String name; //存储主人公名字
arcNode firstArc; //指针域
/**
* 尾插法,为表头结点添加邻接点和边的信息
* @param index:相关人物对应的顶点下标
* @param relation:相关人物和主人公的关系
* **/
public void linkedLast(int index,String relation){
arcNode newNode = new arcNode(vexs[index].name,relation);
if (this.E==0){
this.firstArc = newNode;
}else {
//生成一个临时指针遍历至最后一个表结点
arcNode tempNode = this.firstArc;
while (tempNode.nextNode != null){
tempNode = tempNode.nextNode;
}
//将新结点接到最后一个结点的后面
tempNode.nextNode = newNode;
}
this.E++;
}
}
/**
* 顶点数组
*/
vexNode[] vexs;
/**
* 构造方法,构造出只有顶点的图
* *
* @param vertex:各个