问题:写个算法:部落酋长如何能交换到斧头描述:酋长有颗宝石,想换把斧头
      巫师很多水果,想换宝石
      猎人有猎物羚羊,想换水果  
      小朋友有把斧头,想换猎物羚羊表名称: sku字段:id   name     have   WantTo 
--------------------------------------
     1    酋长     宝石    斧头 
     2    巫师     水果    宝石
     3    猎人     羚羊    水果
     4    小朋友   斧头    羚羊要求 :  1:程序处理可以使用简单的伪代码实现 
         2:SQL 语句需要写完整

解决方案 »

  1.   

    你认为 CSDN 是个求代码的地方么?
      

  2.   

    两种方法:
    1、如果是ORACLE数据库,直接start with connect by就能把所有递归东西拿出来,用法不具体说了
    2、SQL+JAVA处理如下:
    数据结构:Stucture Exchange:(ID, Name, have, WantTo)
    数据取得:Data: List<Exchange> list = "Select ID, Name, have, WantTo from City Order by have";StringBuffer output = new StringBuffer();
    firstNode = (Exchange)list.get(0)
    visit(firstNode.WantTo);
    // 递归算法
    private void visit(Integer WantTo) {
        for (Exchange node : list) {
            if (node.have == WantTo) {
                output.append(WantTo + " -> " + node.name + "." + node.have + "\n");
                list.remove(node);
                if (!"斧头").equals(node.have)) visit(node.have);
                return;
            }
        }
    }