【发布时间】:2021-06-15 18:36:06
【问题描述】:
下面我有一个双链表的 int indexOf(T element) 方法。我需要有关代码的帮助以确保其正常运行。该方法应返回列表中第一次出现的元素,如果元素不在列表中,则返回 -1。下面是它使用的节点类。 IUDoubleLinkedList.java 类实现了 IndexedUnsortedList.java,这是 indexOf 方法的来源。我尝试使用我的单链表类中的 indexOf 方法,但它不一样,所以我希望了解它为什么会有所不同以及使用的代码在单链表和双链表之间是不同的。
public class IUDoubleLinkedList<T> implements IndexedUnsortedList<T> {
private Node<T> head, tail;
private int size;
private int modCount;
public IUDoubleLinkedList() {
head = tail = null;
size = 0;
modCount = 0;
这是 indexOf(T element) 方法
@Override
public int indexOf(T element) {
// TODO Auto-generated method stub
return 0;
}
下面是它使用的 Node.java 类
public class Node<T> {
private Node<T> nextNode;
private T element;
private Node<T> prevNode;
/**
* Creates an empty node.
*/
public Node() {
nextNode = null;
element = null;
}
/**
* Creates a node storing the specified element.
*
* @param elem
* the element to be stored within the new node
*/
public Node(T element) {
nextNode = null;
this.element = element;
setPrevNode(null);
}
/**
* Returns the node that follows this one.
*
* @return the node that follows the current one
*/
public Node<T> getNextNode() {
return nextNode;
}
/**
* Sets the node that follows this one.
*
* @param node
* the node to be set to follow the current one
*/
public void setNextNode(Node<T> nextNode) {
this.nextNode = nextNode;
}
/**
* Returns the element stored in this node.
*
* @return the element stored in this node
*/
public T getElement() {
return element;
}
/**
* Sets the element stored in this node.
*
* @param elem
* the element to be stored in this node
*/
public void setElement(T element) {
this.element = element;
}
@Override
public String toString() {
return "Element: " + element.toString() + " Has next: " + (nextNode != null);
}
public Node<T> getPrevNode() {
return prevNode;
}
public void setPrevNode(Node<T> prevNode) {
this.prevNode = prevNode;
}
}
【问题讨论】:
-
“我尝试使用我的 indexOf 方法”:我在您的代码中找不到您的实现。 “...来自我的单链表类,但它不一样”:没有理由为什么它应该不同,但您没有提供相关代码。
标签: linked-list indexof doubly-linked-list