我有一个大学助理,我被困在一个部分
我必须使用Matrix和Hash of list进行图表表示。第一个没问题。第二个让我失望。
我需要按照从次要原点到较大的顺序打印图表的顺序,其中打印目的地和重量,如下所示:
原点,目的地,体重
例如,如果打印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)
答案 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类和它的方法。感谢所有对帮助感兴趣的人。