各位大哥大姐,小弟刚刚学了点数据结构,老板明天就叫我写个模块 我快不行了 大家帮帮忙把
有如下字段
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打印出来
着是不是二叉树做的啊 麻烦大家给我点代码例子把 高手把代码写一下把 我真做不来
问题点数:30、回复次数:6Top
1 楼dogod(那天,正喝着汤,猛然间....睡着了!)回复于 2006-03-14 19:34:46 得分 30
u_id如果唯一,这不是单链条么,用个HashMap就能实现,很简单,不过估计楼主要的不是这种效果吧,所以:
问楼主:一条记录的U_ID是不是唯一的?
Top
2 楼p54288()回复于 2006-03-14 19:51:30 得分 0
哎呀!! 着为朋友问的好 我也没注意,不过我想着个U_id应该是唯一的,不知道老板出着个问题是考我什么 反正就着个意思 还是想请大家帮忙了 知道的写代码让我看下把麻烦大家了Top
3 楼dogod(那天,正喝着汤,猛然间....睡着了!)回复于 2006-03-14 20:45:51 得分 0
哪简单,我遍个给你Top
4 楼p54288()回复于 2006-03-14 20:48:56 得分 0
谢谢了 麻烦了 你给我 我就结贴了Top
5 楼dogod(那天,正喝着汤,猛然间....睡着了!)回复于 2006-03-14 20:57:06 得分 0
package others;
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也能重复,那就是图了,这两个实现起来就比较麻烦点Top
6 楼p54288()回复于 2006-03-14 21:02:27 得分 0
谢谢你了啊 现在就结了Top




