《数据结构》课程教学资源:第九章 查找

Algorithms and Datastructures: Search 目录 第九章查找 1、静态查找表 2、动态查找表 3、哈希查找表 SEAR
1 物料管理 SEAR 1 Algorithms and DataStructures:Search 1、静态查找表 2、动态查找表 3、哈希查找表 目录 第九章 查找

Algorithms and Datastructures: Search 基本概念 n查找表: 由同一类型的数据元素(或记录)构成的集合 静态查找表: 对查找表没有修改操作 ■动态查找表: 对查找表具有修改操作 n关键字 可以标识一个数据元素的数据元素中的某个数据项的值 主关键字: 唯一标识数据元素 次关键字: 可以标识若干个数据元素 SEAR
2 物料管理 SEAR 2 Algorithms and DataStructures:Search 基本概念 ◼ 查找表: 由同一类型的数据元素(或记录)构成的集合 ◼ 静态查找表: 对查找表没有修改操作 ◼ 动态查找表: 对查找表具有修改操作 ◼ 关键字 可以标识一个数据元素的数据元素中的某个数据项的值 ◼ 主关键字: 唯一标识数据元素 ◼ 次关键字: 可以标识若干个数据元素

Algorithms and Datastructures: Search 1、静态查找表 1、顺序表的查找 应用范围:顺序表或线性链表表示的静杰查找表。表内元素之间无序。 顺序表的表示和查找。 表示: typedef struct{ ElemType *elem; int length;} SStable;∥ length=n+1 实现: int Search Seq( Sstable ST, KeyType key ∥n:结点个数 【 STele[].key=key;∥哨兵 设置哨兵的好处: for (i= ST length; EQ(STelem( key, key );--i 在顺序表中总可以找到 return I;∥返回0,查找失败,否则,找到key所在的 待查结点。否则,必须将 ∥数组元素的下标地址 判断条件i>=0加进for 语句。 }∥ Search Seq eg:查找key=8的结点所在的数组元素的下标 key 数组 STele 810010 3 01 2 3n-2n-1n SEAR
3 物料管理 SEAR 3 Algorithms and DataStructures:Search 1、静态查找表 1、顺序表的查找 • 应用范围:顺序表或线性链表表示的静态查找表。表内元素之间无序。 • 顺序表的表示和查找。 表示:typedef struct { ElemType * elem; int length; } SStable; // length = n+1 实现: int Search_Seq( Sstable ST, KeyType key ) { ST.elem[0]. key = key; // 哨兵 for ( i = ST.length ; ! EQ(ST.elem[i]. key, key ) ; - - i ) return i; // 返回 0,查找失败,否则,找到key 所在的 // 数组元素的下标地址 } // Search_Seq ……………… 0 1 2 n-3 n-2 n-1 n i 数组 ST.elem key e.g: 查找 key = 8 的结点所在的数组元素的下标。 8 100 10 0 7 1 3 设置哨兵的好处: 在顺序表中总可以找到 待查结点。否则,必须将 判断条件i >= 0 加进 for 语句。 // n: 结点个数

Algorithms and Datastructures: Search 1、静态查找表 1、顺序表的查找 应用范围:顺序表或线性链表表示的静杰查找表。表内元素之间无序。 顺序表的表示和查找。 Rzs: typedef struct( ElemType *elem; int length; 3 SStable 实现: int Search Seq( Sstable ST, KeyType key 【 STele[].key=key;∥哨兵 for (i= ST length; EQ(STelem( key, key );--i return I;∥返回0,查找失败,否则,找到key所在的 ∥数组元素的下标地址 }∥ Search Seq eg:查找key=8的结点所在的数组元素的下标 key 数组 STele 810010 0713 01 2 n-3 n-2 n-1n SEAR
4 物料管理 SEAR 4 Algorithms and DataStructures:Search 1、静态查找表 1、顺序表的查找 • 应用范围:顺序表或线性链表表示的静态查找表。表内元素之间无序。 • 顺序表的表示和查找。 表示:typedef struct { ElemType * elem; int length; } SStable; 实现: int Search_Seq( Sstable ST, KeyType key ) { ST.elem[0]. key = key; // 哨兵 for ( i = ST.length ; ! EQ(ST.elem[i]. key, key ) ; - - i ) return i; // 返回 0,查找失败,否则,找到key 所在的 // 数组元素的下标地址 } // Search_Seq ……………… 0 1 2 n-3 n-2 n-1 n 数组 ST.elem key e.g: 查找 key = 8 的结点所在的数组元素的下标。 8 100 10 0 7 1 3 i

Algorithms and Datastructures: Search 1、静态查找表 1、顺序表的查找 应用范围:顺序表或线性链表表示的静杰查找表。表内元素之间无序。 顺序表的表示和查找。 Rzs: typedef struct( ElemType *elem; int length; 3 SStable 实现: int Search Seq( Sstable ST, KeyType key 【 STele[].key=key;∥哨兵 for (i= ST length; EQ(STelem( key, key );--i return I;∥返回0,查找失败,否则,找到key所在的 ∥数组元素的下标地址 }∥ Search Seq eg:查找key=8的结点所在的数组元素的下标 key 数组 STele 810010 0713 01 2 n-3 n-2 n-1n SEAR
5 物料管理 SEAR 5 Algorithms and DataStructures:Search 1、静态查找表 1、顺序表的查找 • 应用范围:顺序表或线性链表表示的静态查找表。表内元素之间无序。 • 顺序表的表示和查找。 表示:typedef struct { ElemType * elem; int length; } SStable; 实现: int Search_Seq( Sstable ST, KeyType key ) { ST.elem[0]. key = key; // 哨兵 for ( i = ST.length ; ! EQ(ST.elem[i]. key, key ) ; - - i ) return i; // 返回 0,查找失败,否则,找到key 所在的 // 数组元素的下标地址 } // Search_Seq ……………… 0 1 2 n-3 n-2 n-1 n 数组 ST.elem key e.g: 查找 key = 8 的结点所在的数组元素的下标。 8 100 10 0 7 1 3 i

Algorithms and Datastructures: Search 1、静态查找表 1、顺序表的查找 应用范围:顺序表或线性链表表示的静杰查找表。表内元素之间无序。 顺序表的表示和查找。 Rzs: typedef struct( ElemType *elem; int length; 3 SStable 实现: int Search Seq( Sstable ST, KeyType key 【 STele[].key=key;∥哨兵 for (i= ST length; EQ(STelem( key, key );--i return I;∥返回0,查找失败,否则,找到key所在的 ∥数组元素的下标地址 }∥ Search Seq eg:查找key=8的结点所在的数组元素的下标 key 数组 STele 810010 3 01 2 n-3 n-2 n-1n SEAR
6 物料管理 SEAR 6 Algorithms and DataStructures:Search 1、静态查找表 1、顺序表的查找 • 应用范围:顺序表或线性链表表示的静态查找表。表内元素之间无序。 • 顺序表的表示和查找。 表示:typedef struct { ElemType * elem; int length; } SStable; 实现: int Search_Seq( Sstable ST, KeyType key ) { ST.elem[0]. key = key; // 哨兵 for ( i = ST.length ; ! EQ(ST.elem[i]. key, key ) ; - - i ) return i; // 返回 0,查找失败,否则,找到key 所在的 // 数组元素的下标地址 } // Search_Seq ……………… 0 1 2 n-3 n-2 n-1 n 数组 ST.elem key e.g: 查找 key = 8 的结点所在的数组元素的下标。 8 100 10 0 7 1 3 i

Algorithms and Datastructures: Search 1、静态查找表 1、顺序表的查找 应用范围:顺序表或线性链表表示的静杰查找表。表内元素之间无序。 顺序表的表示和查找。 Rzs: typedef struct( ElemType *elem; int length; 3 SStable 实现: int Search Seq( Sstable ST, KeyType key 【 STele[].key=key;∥哨兵 for (i= ST length; EQ(STelem( key, key );--i return I;∥返回0,查找失败,否则,找到key所在的 ∥数组元素的下标地址 }∥ Search Seq eg:查找key=8的结点所在的数组元素的下标 key 数组 STele 810010 3 01 2 n-3 n-2 n-1n SEAR
7 物料管理 SEAR 7 Algorithms and DataStructures:Search 1、静态查找表 1、顺序表的查找 • 应用范围:顺序表或线性链表表示的静态查找表。表内元素之间无序。 • 顺序表的表示和查找。 表示:typedef struct { ElemType * elem; int length; } SStable; 实现: int Search_Seq( Sstable ST, KeyType key ) { ST.elem[0]. key = key; // 哨兵 for ( i = ST.length ; ! EQ(ST.elem[i]. key, key ) ; - - i ) return i; // 返回 0,查找失败,否则,找到key 所在的 // 数组元素的下标地址 } // Search_Seq ……………… 0 1 2 n-3 n-2 n-1 n 数组 ST.elem key e.g: 查找 key = 8 的结点所在的数组元素的下标。 8 100 10 0 7 1 3 i

Algorithms and Datastructures: Search 1、静态查找表 1、顺序表的查找 应用范围:顺序表或线性链表表示的静杰查找表。表内元素之间无序。 顺序表的表示和查找。 Rzs: typedef struct( ElemType *elem; int length; 3 SStable 实现: int Search Seq( Sstable ST, KeyType key 【 STele[].key=key;∥哨兵 for (i= ST length; EQ(STelem( key, key );--i return I;∥返回0,查找失败,否则,找到key所在的 ∥数组元素的下标地址 }∥ Search Seq eg:查找key=8的结点所在的数组元素的下标 key 数组 STele 810010 3 01 2 n-3 n-2 n-1n SEAR
8 物料管理 SEAR 8 Algorithms and DataStructures:Search 1、静态查找表 1、顺序表的查找 • 应用范围:顺序表或线性链表表示的静态查找表。表内元素之间无序。 • 顺序表的表示和查找。 表示:typedef struct { ElemType * elem; int length; } SStable; 实现: int Search_Seq( Sstable ST, KeyType key ) { ST.elem[0]. key = key; // 哨兵 for ( i = ST.length ; ! EQ(ST.elem[i]. key, key ) ; - - i ) return i; // 返回 0,查找失败,否则,找到key 所在的 // 数组元素的下标地址 } // Search_Seq ……………… 0 1 2 n-3 n-2 n-1 n 数组 ST.elem key e.g: 查找 key = 8 的结点所在的数组元素的下标。 8 100 10 0 7 1 3 i

Algorithms and Datastructures: Search 1、静态查找表 1、顺序表的查找 应用范围:顺序表或线性链表表示的静杰查找表。表内元素之间无序。 顺序表的表示和查找。 Rzs: typedef struct( ElemType *elem; int length; 3 SStable 实现: int Search Seq( Sstable ST, KeyType key 【 STele[].key=key;∥哨兵 for (i= ST length; EQ(STelem( key, key );--i return I;∥返回0,查找失败,否则,找到key所在的 ∥数组元素的下标地址 }∥ Search Seq eg:查找key=8的结点所在的数组元素的下标 key 数组 STele 810010 3 2 3n-2n-1n 查找失败,则i=0; SEAR
9 物料管理 SEAR 9 Algorithms and DataStructures:Search 1、静态查找表 1、顺序表的查找 • 应用范围:顺序表或线性链表表示的静态查找表。表内元素之间无序。 • 顺序表的表示和查找。 表示:typedef struct { ElemType * elem; int length; } SStable; 实现: int Search_Seq( Sstable ST, KeyType key ) { ST.elem[0]. key = key; // 哨兵 for ( i = ST.length ; ! EQ(ST.elem[i]. key, key ) ; - - i ) return i; // 返回 0,查找失败,否则,找到key 所在的 // 数组元素的下标地址 } // Search_Seq ……………… 0 1 2 n-3 n-2 n-1 n 数组 ST.elem key e.g: 查找 key = 8 的结点所在的数组元素的下标。 查找失败,则i = 0; 8 100 10 0 7 1 3 i

Algorithms and Datastructures: Search 1、静态查找表 1、顺序表的查找 应用范围:顺序表或线性链表表示的静杰查找表。表内元素之间无序。 顺序表的表示和查找。 Rzs: typedef struct( ElemType *elem; int length; 3 SStable 实现: int Search Seq( Sstable ST, KeyType key 【 STele[].key=key;∥哨兵 for(i= STlength; EQ (STelem(( key, key);--i) return I;∥返回0,查找失败,否则,找到key所在的 ∥数组元素的下标地址 }∥ Search Seq eg:查找key=8的结点所在的数组元素的下标 key 数组 STele 810010 0813 2 n-3 n-2 n-1n 10 SEAR
10 物料管理 SEAR 10 Algorithms and DataStructures:Search 1、静态查找表 1、顺序表的查找 • 应用范围:顺序表或线性链表表示的静态查找表。表内元素之间无序。 • 顺序表的表示和查找。 表示:typedef struct { ElemType * elem; int length; } SStable; 实现: int Search_Seq( Sstable ST, KeyType key ) { ST.elem[0]. key = key; // 哨兵 for ( i = ST.length ; ! EQ(ST.elem[i]. key, key ) ; - - i ) return i; // 返回 0,查找失败,否则,找到key 所在的 // 数组元素的下标地址 } // Search_Seq ……………… 0 1 2 n-3 n-2 n-1 n i 数组 ST.elem key e.g: 查找 key = 8 的结点所在的数组元素的下标。 8 100 10 0 8 1 3
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《数据结构》课程教学资源:第三章 栈和队列.ppt
- 《数据结构》课程教学资源:第七章 图.ppt
- 《数据结构》课程教学资源:第四章 串 4.3串的模式匹配算法 44串操作应用举例.ppt
- 《数据结构》课程教学资源:期末复习.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第9章 MATLAB符号计算.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第8章 MATLAB数值积分与微分.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第7章 MATLAB解方程与函数极值.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第6章 MATLAB数据分析与多项式计算.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第5章 MATLAB绘图.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第4章 MATLAB文件操作.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第3章 MATLAB程序设计.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第2章 MATLAB矩阵及其运算.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第1章 MATLAB操作基础.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第13章 在Word环境下使用MATLAB.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第12章 Simulink动态仿真集成环境.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第11章 MATLAB图形用户界面设计.ppt
- 《MATLAB》课程教材电子教案(PPT课件讲稿)第10章 MATLAB图形句柄.ppt
- 《C语言程序设计》课程教学资源:习题二.doc
- 《C语言程序设计》课程教学资源:习题一.doc
- 《大学计算机基础》课程教学资源(PPT课件讲稿)第六课 计算机网络基础及应用.ppt
- 《数据结构》课程教学资源:第五章 数组和广义表.ppt
- 《数据结构》课程教学资源:第一章 绪论.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第1章 基础知识.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第2章 80x86计算机系统组织.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第3章 80x86指令系统.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第4章 汇编语言程序格式.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第5章 基本控制结构.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第6章 过程.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第7章 汇编语言的扩展.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)第8章 输入/输出与中断.ppt
- 人民邮电出版社:高等学校计算机专业教材《80x86汇编语言程序设计》课程电子教案(PPT课件讲稿)目录.ppt
- 《大学计算机基础教程》课程教学资源(PPT课件)第5章 MCS - 51单片机的中断.ppt
- 《大学计算机基础教程》课程教学资源(PPT课件)第6章 MCS - 51单片机内部定时器/计数器及串行接口.ppt
- 《大学计算机基础教程》课程教学资源(PPT课件)第1章 微型计算机基础.ppt
- 《大学计算机基础教程》课程教学资源(PPT课件)第2章 单片机的硬件结构和原理.ppt
- 《大学计算机基础教程》课程教学资源(PPT课件)第3章 MCS - 51单片机指令系统.ppt
- 《大学计算机基础教程》课程教学资源(PPT课件)第4章 汇编语言程序设计简介.ppt
- 《大学计算机基础教程》课程教学资源(PPT课件)第7章 单片机系统扩展与接口技术.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第三章 安全性分析与风险评估 3.1 安全漏洞概述 3.2 微软操作系统安全性分析.ppt
- 《网络信息对抗》课程教学资源(PPT课件讲稿)第一章 概述.ppt