数据结构实验报告 实验五 查找算法

昆明理工大学信息工程与自动化学院学生实验报告

201 201 学年学期

课程名称:数据结构         开课实验室:                         年  月  日

一.实验内容:

   查找算法,其中线性表的查找包括顺序查找,二分查找,分块查找;树表的查找包括二叉排序树等;还有散列表的查找等等。

二.实验目的:

   1.掌握各种查找算法理解和实现;

2.增强上机编程调试能力;

三.主要程序代码分析:

typedef struct

{

    int Key;                           //关键项

}ElemType;

int Search_Seq(SSTable ST,int Key)     //顺序查找

{

    int i;

    ST.elem[0].Key=Key;                //设置监视哨 

    for(i=ST.length;ST.elem[i].Key!=Key;i--);  

    return i;

}

int Search_Bin(SSTable ST,int Key)      //在有序表中进行二分查找

{

    int low=1;

    int high=ST.length;              //置查找区间的上、下届初值

    int mid;

    count=0;

    while(low<=high)                  //当前查找区间非空

    {

        count++;

       mid=(low+high)/2;

       if(ST.elem[mid].Key==Key)

           return mid;                //查找成功,返回

       else if(Key<ST.elem[mid].Key)

           high=mid-1;              //缩小查找区间为左子表

       else

           low=mid+1;               //缩小查找区间为右子表

    }

    return (-1);                    //查找失败

}

四.程序运行结果:

五.实验总结:

查找又称检索,它也是数据处理中经常使用的一种重要的运算,在线性表上的查找方法有顺序查找,二分查找和分块查找。顺序查找是一种最简单的查找方法。它的基本思想是:从表的一端开始,顺序扫描线性表,依次将扫描到的结点关键字和定值K相比较,若当前扫描到的结点关键字与K相等,则查找成功;若扫描结束后仍未找到关键字等于K的结点,则查找失败。对于二分查找,它要求线性表是有序表,并且要用向量作为表的存储结构。

我们在以后的学习中也要不断地熟悉这些查找方法,因为它们在数据处理中会经常用到,只有将它们掌握好,而且我们还要不断地练习,这样我们的编程能力才会提高,有更大的进步。

 

第二篇:数据结构实验报告(五):实现典型的查找算法

相关推荐