实验七 查找

更新时间:2023-10-24 22:08:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验报告七 查找实验

一、 实验目的: 1、熟悉线性查找算法。

2、掌握顺序查找、二分查找算法

二、 实验内容:

1. SeqList类中增加下列成员方法:

public int lastIndexOf(T key) { //返回最后出现的关键字为key元素位置 int num=0;

for(int i=0;i

if(this.value[i]==key)

num++;

retuen num;

}

2. 为顺序表和单链表增加以下基于查找的删除和替换操作的成员方法: public void removaAll(T key) //删除所有关键字为key元素 顺序表:

public void removaAll(T key){

for(int i=0;i

public void remove(int index){

for(int i=index;i

this.value[i]=this.value[i+1]; else

this.valye[i]=null; } }

单链表

public void removaAll(T key){ Node p=this.head; while(p.next!=null){ if(p.next.data==key) p.next=p.next.next; } }

public void replace (T x, T y) //将首次出现的元素x替换为y

顺序表

public void replace (T x, T y){

for(int i=0;i

单链表

public void replace (T x, T y){ Node p=this.head; while(p.next!=null) if(p.next.data==x){ p.next.data=y; break; } }

public void replace(T x,T y) ) //将所有元素x替换为y 顺序表

public void replace (T x, T y){

for(int i=0;i

单链表

public void replace (T x, T y){ Node p=this.head; while(p.next!=null) if(p.next.data==x) p.next.data=y; }

3、有序表的二分查找(折半查找) public int binarySearch(T key){

int begin=0,end=this.value.length-1; if(key!=null)

while(begin<=end){

int mid=(begin+end)/2; if(value[mid]==key) return mid; if(value[mid]>key) end=min-1; else

begin=mid+1;

}

return -1; }

三、 实验心得(含上机中所遇问题的解决办法,所使用到的编程技巧、创新

点及编程的心得)

本文来源:https://www.bwwdw.com/article/1292.html

Top