Java 如何在链表中设置天花板?
我不知道如何返回符号表中大于或等于键的最小键。。如果有人能给我指出正确的方向,那就太好了,因为我不知道从哪里开始Java 如何在链表中设置天花板?,java,symbol-table,Java,Symbol Table,我不知道如何返回符号表中大于或等于键的最小键。。如果有人能给我指出正确的方向,那就太好了,因为我不知道从哪里开始 public class LinkedListST<Key extends Comparable<Key>, Value> { private Node first; // a helper linked list data type private class Node { private Key key;
public class LinkedListST<Key extends Comparable<Key>, Value> {
private Node first;
// a helper linked list data type
private class Node {
private Key key;
private Value val;
private Node next;
public Node(Key key, Value val, Node next) {
this.key = key;
this.val = val;
this.next = next;
}
}
public Key ceiling (Key key) {
Key ceiling = null;
for(Node x = first; x != null; x = x.next){
if(first.key.compareTo(ceiling) > 0)
ceiling = key;
}
return null; //TODO
}
公共类LinkedList{
私有节点优先;
//辅助链接列表数据类型
私有类节点{
私钥;
私人价值;
私有节点下一步;
公共节点(键、值val、节点下一步){
this.key=key;
this.val=val;
this.next=next;
}
}
公钥上限(密钥){
键上限=空;
for(节点x=first;x!=null;x=x.next){
如果(第一个键比较(天花板)>0)
天花板=钥匙;
}
返回null;//TODO
}
在节点中创建静态变量
类:
private static Key CEILING = null;
然后在构造函数中,将每个新添加的键
与上限
进行比较:
if(key > CEILING) // Just algorithm. Use compareTo() method in your case.
CEILING = key
这样,在填写完LinkedList之后,您将拥有一个值最高的键
或:
if(键<天花板)
天花板=关键点//用于最小关键点
提示:迭代列表,将列表中的每个键与您要查找的键进行比较。您好,感谢您的帮助,我编辑了代码。我不确定我的循环逻辑和if语句是否正确correct@yenyen您的循环很好。只需从方法返回上限即可
if(key < CEILING)
CEILING = key // for smallest key