Java对象 - 图表作为列表的哈希

时间:2018-02-21 14:19:45

标签: java list graph hash

我有一个大学助理,我被困在一个部分

我必须使用Matrix和Hash of list进行图表表示。第一个没问题。第二个让我失望。

我需要按照从次要原点到较大的顺序打印图表的顺序,其中打印目的地和重量,如下所示:

原点,目的地,体重

  • 0,1,1
  • 0,2,1
  • 1,3,2
  • -1,4,2-
  • 2,3,2
  • 3,4,1

例如,如果打印0,1,1,则无法打印1,0,1。

但我的方法显示了所有这些,包括重复。我试图检查元素是否已被打印,但我无法调用从LIST类中检查的HASH函数。

在我看来,就callin而言,层次结构是GRAPH-> HASH-> LIST。

所以基本上我有列表的哈希值,其中哈希索引是原点,列表的元素是有边缘的目的地。

列表中CELL元素的代码如下所述:

try:
   uClient = urlopen(finalURL)
   page = uClient.read()
   uClient.close()
   obj = json.loads(page)
   return obj
except ValueError:
  print "Not found"

LIST的代码在这里:

    class Celula {
    public int elemento; 
    public int peso;
    public Celula prox; 
    public Celula ant; 

    Celula(int elemento, int peso) {
        this.elemento = elemento;
        this.peso = peso;
        this.prox = null;
        this.ant = null;
    }

    Celula(int elemento, int peso, Celula prox) {
        this.elemento = elemento;
        this.peso = peso;
        this.prox = prox;
        this.ant = null;
    }
 }

HASH的代码在这里:

public class Lista {
private Celula primeiro; 
private Celula ultimo; 

public Lista() {
    primeiro = new Celula(-1, -1);
    ultimo = primeiro;
}

public void mostrar(int a) {
    for (Celula i = primeiro.prox; i != null; i = i.prox) {
        if (i.elemento < a) {
            if(this.tabela[a].pesquisar(i) == false){
                System.out.println(a+","+i.elemento +","+i.peso);       
            }
        }
    }
  }

GRAPH的代码在这里:

class HashIndiretoLista {
Lista tabela[];
int tamanho;
final int NULO = -1;

public HashIndiretoLista (){
    this(7);
}

public void mostrar(int size){
    for (int i = 0; i < size; i++) {
        tabela[i].mostrar(i);
    }
}

输入文件是这样的:
0
5
0,1,1
0,3,6
0,4,2
3,4,3
FIM
3
2,4

打印HASH列表的 LIST 中的函数是 public void mostrar(int a)

1 个答案:

答案 0 :(得分:0)

我能够弄清楚。将方法更改为:

public void mostrar(int a) {
    for (Celula i = primeiro.prox; i != null; i = i.prox) {
        if (i.elemento > a) {
            if(this.pesquisar(a) == false){
                System.out.println(a+","+i.elemento +","+i.peso);       
            }
        }
    }
}

这允许我使用调用方法mostrar的Hash表的函数pesquisar。所以基本上是一个层次结构问题,我无法在没有这个的情况下调用该方法进行验证。我在想,因为我在LIST课上,所以会调用LIST类和它的方法。感谢所有对帮助感兴趣的人。