数据结构查找概要1.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构查找概要1

数据结构 第九章 查找 内容提要 基本要求、重点、难点 查找表(Search Table):同一类型的数据元素的集合。 静态查找表(Static Search Table):查询某个元素、检索指定元素的属性。 动态查找表(Dynamic Search Table) :查找后插入、删除。 关键字(Key) :可以唯一标识一个数据元素或记录的数据项的值。 查找,检索(Searching):给出一个key值,在含有若干个结点的序列中找出它。 查找成功—当某个元素的key值等于给定值K,返回该元素的位置。 查找失败—所有元素的key值均不等于给定值K,返回表示失败的标志。 平均查找长度Average Search Length: n n ASL= ? pici 可简化为:ASL=1/n ? ci i=1 i=1 n为结点个数,pi是查找第i个结点的概率, 且pi=1/n, ,即各结点的查找概率相等。 ci是找到第i个结点时与key值进行的比较次数。 典型的关键字类型说明和定义 类型说明 typedef float KeyType; //实型 typedef int KeyType; //整型 typedef char KeyType; //字符型 类型定义 typedef struct { KeyType key; //关键字域 …… //其它域 }SElemType; 9.1 静态表查找 静态查找表的抽象数据类型 ADT StaticsearchTable { 数据对象D:具有同一特性和类型的元素的集合、可唯一标识数据元素的关键字。 数据关系R:数据集合 基本操作P:create(ST,n) //构造查找表 destroy(ST) //销毁查找表 search(ST,ch) //查找表中指定元素 Traverse(ST,visit()) //遍历表 } ADT StaticsearchTable 9.1.1 顺序表的查找 顺序表(Sequential List):线性表的顺序存储结构 用数组A[MaxSize]表示 元素类型为ElemType,关键字key域的类型为KeyType 9.1.1 顺序表查找 顺序查找,线性查找Sequential Search:一种最基本和最简单的查找方法。从表中的第一个元素开始,顺序扫描。 将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查到所要找的元素为止。 对于表中记录的关键字是无序的表,只能采用这种方法。 静态查找表的顺序存储结构 typedef struct { ElemType *elem; int length; }SSTable; 顺序查找 int Search_Seq(SSTable ST, KeyType key) { ST.elem[0].key=key; for(i=ST.length; ST.elem[i].key!=key;i--) return i; } 顺序查找 int Seqsch1(ElemType A[],int n,KeyType K) { A[n].key=K; ∥设置岗哨 for(int i=0; ;i++) if(A[i].key==K) break; if(in) return i; else return -1; } 顺序查找表的平均查找长度 在等概率且查找成功的情况下: n n ASLss=∑PiCi=(1/n)∑(n-i+1) i=1 i=1 =(n+1)/2 顺序查找表的平均查找长度 顺序查找成功时最多查找n次,不成功时的查找次数为n+1。 此时的查找概

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档