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;∥返回O,查找失败,否则,找到key所在的 ∥数组元素的下标地址 }∥Search_Seq e.g:查找key=8的结点所在的数组元素的下标。 key 数组ST.elem 8 100 10 0 7 3 0 1 2 n-3n-2n-1n 6 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、顺序表的查找 ·应用范围:顺序表或线性链表表示的静态查找表。表内元素之间无序。 ·顺序表的表示和查找。 表示: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;∥返▣O,查找失败,否则,找到key所在的 ∥数组元素的下标地址 }∥Search_Seq e.g:查找key=8的结点所在的数组元素的下标。 key 数组ST.elem 8 100 10 0 71 3 0 2 n-3n-2 n-1 n 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、顺序表的查找 ·应用范围:顺序表或线性链表表示的静态查找表。表内元素之间无序。 ·顺序表的表示和查找。 表示: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;∥返回O,查找失败,否则,找到key所在的 ∥数组元素的下标地址 }∥Search_Seq e.g:查找key=8的结点所在的数组元素的下标。 key 数组ST.elem 8 100 10 0 7 3 0 1 2 n-3n-2n-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、顺序表的查找 ·应用范围:顺序表或线性链表表示的静态查找表。表内元素之间无序。 ·顺序表的表示和查找。 表示: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;∥返▣O,查找失败,否则,找到key所在的 ∥数组元素的下标地址 }∥Search_Seq e.g:查找key=8的结点所在的数组元素的下标。 key 数组ST.elem 8 100 10 0 71 3 0 1 2 n-3n-2 n-1 n 查找失败,则i=0; 9 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、顺序表的查找 ·应用范围:顺序表或线性链表表示的静态查找表。表内元素之间无序。 ·顺序表的表示和查找。 表示: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;∥返回O,查找失败,否则,找到key所在的 ∥数组元素的下标地址 }∥Search_Seq e.g:查找key=8的结点所在的数组元素的下标。 key 数组ST.elem 8 100 10 0 8 3 0 1 2 n-3n-2 n-1 n 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