完成以下代码填空:/** 按值查找* 在带头结点的单链表中查找值为element的元素* 若查找成功,返回元素的序号,否则返回0表示查找失败*///first为指向头结点的头引用public int locate(T element) {//引用变量p初始化,指向首结点(第一个数据元素所在结点)LinkedNode<;T>; p=();int count=();//计数器count初始化// 从单链表中的首结点元素开始查找while(p!=null) {if(().equals(element)) {return count; //查找成功,结束方法并返回元素序号}p=(); //指向后继结点(); //计数器的值增1}return 0; //退出循环表明查找失败}
举一反三
- 编写算法:在带头结点的单链表中查找第一个和给定值x相等的结点,若查到则返回指向该结点的指针,否则返回NULL。
- 下列对于带头结点单链表的描述何者正确? A: 查找首元素结点时间耗费O(n) B: 查找尾结点时间耗费O(1) C: 无法往前找到前驱结点 D: 改为循环单链表可以让查找结点的复杂度降低
- 在n个结点的单链表中,算法的时间复杂度是O(1)的操作是()。 A: 已知某个结点的指针求该结点的后继 B: 已知某个结点的指针求单链表的前驱 C: 查找值为x的数据元素所在的结点位置 D: 查找第i个数据元素所在结点的位置
- 2. 从一个具有n个结点的单链表中查找值为x的结点,在查找成功情况下,需平均比较( )个结点。
- 顺序表按值查找是在表L中查找值为x的数据元素,其结果返回在L中 次出现值为x的那个元素的 或 ,称为查找成功; 否则,在L中未找到值为x的数据元素,返回一个 值表示查找失败。