用Java知识为线性表CLinkList类增加以下的方法: 在indexOf的基础上实现lastIndexOf(T x)并将实例代码结果运行出来
时间: 2024-09-26 07:06:23 浏览: 20
在Java中,如果你有一个名为`CLinkedList<T>`的单链表类,你可以通过遍历链表从后向前查找元素来实现`lastIndexOf()`方法,类似于`indexOf()`方法,但查找的方向相反。以下是`lastIndexOf()`方法的基本实现:
```java
public class CLinkedList<T> {
private Node<T> head;
// ... 其他链表类的方法
/**
* 查找指定元素在列表中的最后一个索引,如果不存在则返回-1。
* @param x 要查找的元素
* @return 元素最后一次出现的索引,如果没有找到则返回-1
*/
public int lastIndexOf(T x) {
int index = -1; // 初始化为-1,表示未找到
Node<T> current = head;
// 遍历链表直到头节点或找到x
while (current != null) {
if (Objects.equals(current.data, x)) { // 如果当前节点的数据等于目标值
index = current.index; // 更新索引为当前节点的位置
}
current = current.next; // 移动到下一个节点
}
return index;
}
}
// 链表节点定义
class Node<T> {
T data;
int index;
Node<T> next;
// 构造函数和相关的getter/setter方法
}
// 使用示例
CLinkedList<Integer> list = new CLinkedList<>();
list.add(1); list.add(2); list.add(1); list.add(3);
System.out.println(list.lastIndexOf(1)); // 输出:2,因为1在链表中最后出现的位置是索引2
```