有如下字段
ID 125 AA U_ID 236
ID 236 BB U_ID 456
ID 456 CC U_ID 0
不知道大家看的懂吗 ID 125为AA自己的ID号 U_ID236为对应的ID 然后就对应到 BB了 通过BB的U_ID就得到CC了 CC为0 就把CC打印出来
着是不是二叉树做的啊 麻烦大家给我点代码例子把 高手把代码写一下把 我真做不来
ID 125 AA U_ID 236
ID 236 BB U_ID 456
ID 456 CC U_ID 0
不知道大家看的懂吗 ID 125为AA自己的ID号 U_ID236为对应的ID 然后就对应到 BB了 通过BB的U_ID就得到CC了 CC为0 就把CC打印出来
着是不是二叉树做的啊 麻烦大家给我点代码例子把 高手把代码写一下把 我真做不来
问楼主:一条记录的U_ID是不是唯一的?
import java.util.*;class People{
String ID="0";
String Name="0";
String UID="0";
public People(String id,String name,String uid){
ID=id;
Name=name;
UID=uid;
}
public String toString(){
return this.Name;
}
}public class IDLinker { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//这是数据输入,具体情况具体改变输入方式,为求简便,我就直接用数组定义了
People[] peoples={
new People("125","AA","236"),
new People("236","BB","456"),
new People("456","CC","0"),
new People("122","DD","236"),
new People("123","EE","122"),
new People("124","FF","999"),
new People("125","GG","0")
};
HashMap<String,People> hp=new HashMap<String,People>();
for(int i=0;i<peoples.length;i++)
if(hp.containsKey(peoples[i].ID))
System.out.println("ID"+peoples[i].ID+"重复,忽略掉..");
else hp.put(peoples[i].ID,peoples[i]);
//这里定义了起始项,可以根据其他条件改变如改成System.in.read();
String startID="123";
System.out.println("链首: "+(People)hp.get(startID));
String nextID=((People)hp.get(startID)).UID;
String contentID=startID;
while(nextID!=null&&!nextID.equals("0"))
if(hp.containsKey(nextID)){
contentID=nextID;
nextID=((People)hp.get(nextID)).UID;
}
else {
System.out.println("找不到后继项");
nextID=null;
}
if(nextID!=null)System.out.println("找到链尾:"+(People)(hp.get(contentID)));
}}
====
另:如果UID允许重复,那就是树,
如果ID也能重复,那就是图了,这两个实现起来就比较麻烦点