数据结构教程 第二十九课 静态查找表(一)顺序表的查找_第1页
数据结构教程 第二十九课 静态查找表(一)顺序表的查找_第2页
数据结构教程 第二十九课 静态查找表(一)顺序表的查找_第3页
数据结构教程 第二十九课 静态查找表(一)顺序表的查找_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据结构教程第二十九课静态查找表(一)顺序表的查找数据结构教程第二十九课静态查找表(一)顺序表的查找教学目的: 掌握查找的基本概念,顺序表查找的性能分析教学重点: 查找的基本概念教学难点: 顺序表查找的性能分析授课内容:一、查找的基本概念查找表:是由同一类型的数据元素(或记录)构成的集合。查找表的操作:1、查询某个“特定的”数据元素是否在查找表中。2、检索某个“特定的”数据元素的各种属性。3、在查找表中插入一个数据元素;4、从查找表中刪去某个数据元素。 静态查找表对查找表只作前两种操作动态查找表在查找过程中查找表元素集合动态改变关键字是数据元素(或记录)中某个数据项的值主关键字可以唯一的地标识

2、一个记录次关键字用以识别若干记录查找根据给定的某个值,在查找表中确定一个其关键字等于给定的记录或数据元素。若表中存在这样的一个记录,则称查找是成功的,此时查找的结果为给出整个记录的信息,或指示该记录在查找表中的位置;若表中不存在关键字等于给定值的记录,则称查找不成功。一些约定:典型的关键字类型说明:typedef float KeyType;/实型typedef int KeyType;/整型typedef char *KeyType;/字符串型数据元素类型定义为:typedef structKeyType key; / 关键字域.ElemType; 对两个关键字的比较约定为如下的宏定义:对数

3、值型关键字#define EQ(a,b) (a)=(b)#define LT(a,b) (a)(b)#define LQ(a,b) (a)=(b)对字符串型关键字#define EQ(a,b) (!strcmp(a),(b)#define LT(a,b) (strcmp(a),(b)0)#define LQ(a,b) (strcmp(a),(b)=0)二、静态查找表静态查找表的类型定义:ADT StaticSearchTable数据对象D:D是具有相同特性的数据元素的集合。各个数据元素均含有类型相同,可唯一标识数据元素的关键字。数据关系R:数据元素同属一个集合。基本操作P:Create(&ST

4、,n);操作结果:构造一个含n个数据元素的静态查找表ST。Destroy(&ST);初始条件:静态查找表ST存在。操作结果:销毁表ST。Search(ST,key);初始条件:静态查找表ST存在,key为和关键字类型相同的给定值。操作结果:若ST中在在其关键字等于key的数据元素,则函数值为该元素的值或在表中的位置,否则为“空”。Traverse(ST,Visit();初始条件:静态查找表ST存在,Visit是对元素操作的应用函数。操作结果:按某种次序对ST的每个元素调用函数visit()一次且仅一次。一旦visit()失败,则操作失败。ADT StaticSearchTable三、顺序表的查

5、找静态查找表的顺序存储结构typedef struct ElemType *elem;int length;SSTable;顺序查找:从表中最后一个记录开始,逐个进行记录的关键字和给定值的比较,若某个记录的关键字和给定值比较相等,则查找成功,找到所查记录;反之,查找不成功。int Search_Seq(SSTable ST,KeyType key)ST.elme0.key=key;for(i=ST.length; !EQ(ST.elemi.key,key); -i);return i;查找操作的性能分析:查找算法中的基本操作是将记录的关键字和给定值进行比较,通常以“其关键字和给定值进行过比较的记录个数的平均值”作为衡量依据。平均查找长度:为确定记录在查找表中的位置,需用和给定值进行比较的关键字个数的期望值称为查找算法在查找成功时的平均查找长度。其中:Pi为查找表中第i个记录的概率,且;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论