我有一个有三个节点的单链接列表。
Rank1[Identity Number: 1, Location at point: 5.4,3.2, Score: 8.2]
Rank2[Identity Number: 3, Location at point: 2.2,1.2, Score: 6.0]
Rank3[Identity Number: 2, Location at point: 1.4,9.2, Score: 7.5]
标识号为整数,点的位置为点类的对象,分数为双精度。我将节点插入到包含point对象(point value处的位置)的记录对象列表中。
要了解变量和类:
点类:
class Point {
public double x, y;
public Point(double x, double y) {
this.x = x;
this.y = y;
}
//Απόσταση με δεδομένο το σημείο p
public double dist(Point p) {
return Math.sqrt((this.x-p.x)*(this.x-p.x)+(this.y-p.y)*(this.y-p.y));
}
记录类别:
class Record {
public int id; //Αναγνωριστικό ενός καταστήματος
public Point location; //Συντεταγμένες του σημείου ενδιαφέροντος
public double score; //Βαθμολογία του σημείου
public Record(int id, Point location, double score) {
this.id = id;
this.location = location;
this.score = score;
}
//Επιστρέφει τα στοιχεία που προστέθηκαν για το μαγαζί
public Record copy() {
return new Record(
this.id,
this.location.copy(),
this.score
);
}
节点类:
public Record poi;
public Node next;
public Node(Record poi) {
this.poi = poi;
}
public Record getPoi() {
return poi;
}
public void setPoi(Record poi) {
this.poi = poi;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
public String toString() {
return poi.toString();
}
下面的类包括main和nearest方法。在main方法中,我插入值并创建上面定义的节点。在nearest方法中,我尝试计算位置和p参数的两点之间的距离,如果距离小于maxdist,则将节点添加到名为nearlist的新列表中。
class RankList {
private Node first;
private int nodeCount;
private Record record;
public static void main(String[] args) {
//Inserting the nodes to the singly linkedlist
RankList list1 = new RankList();
list1.nearest(p,maxDist); //maxDist=8.7
}
public RankList nearest (Point p,double maxDist){
RankList nearList = new RankList();
Node current = first;
while (current != null) {
System.out.print(current);
if(record.location.dist(p)<maxDist){ //Finding the distance between the added points with p argument
nearList.insert(record); //Insert the distances shorter than maxDist in a new list.
}
current = current.getNext();
}
System.out.println("null");
return nearList;
}
}
我尝试从每个节点检索对象点,以便进行比较,然后将它们添加到新列表中。我试着用record object实现这一点,但似乎不起作用。
主要问题是我不知道如何以不同的方式处理节点的值,以及如何检索所需的值。
任何建议都会很有帮助!随时询问有关代码的所有信息。
暂无答案!
目前还没有任何答案,快来回答吧!