8.2线性表的查找
8.2 线性表的查找
顺序表的类型定义#define N 10typedef struct node(..int key,/key为关键字,类型设定为整型fNode;Node R[N+1];
顺序表的类型定义 #define N 10 typedef struct node { .; int key; //key为关键字,类型设定为整型 }Node; Node R[N+1];
·引入:猜数5 1278834·特征:无序·策略:顺序查找
引入:猜数 5 12 7 8 3 4 特征:无序 策略:顺序查找
8.2.1顺序查找·顺序查找是一种最简单的查找方法·基本思想是:从表的一端开始,顺序扫描线性表,依次将扫描到的结点关键字和待找的值K相比较,若相等,则查找成功,若整个表扫描完毕,仍末找到关键字等于K的元素,则查找失败
8.2.1 顺序查找 顺序查找是一种最简单的查找方法 基本思想是: 从表的一端开始,顺序扫描线性表,依次将扫描到的结点 关键字和待找的值K相比较, 若相等,则查找成功, 若整个表扫描完毕,仍末找到关键字等于K的元素,则查 找失败
2.顺序查找算法实现int seq_search( table R[], int k)int seq_search(table R[ ], int k)(int i=;//从前向后扫描{int i=N;//从后向前扫描while(i<n )R[O].key==k;// 利用R[O]作监视哨if (R[i].key==k)for( ; R[i].key != k ; i-- )(return(i) // foundreturn(i)break;}15else i++;if(i-=n)return(-1 ); //not found
2.顺序查找算法实现 int seq_search ( tableR[ ], int k) { int i=0; //从前向后扫描 while ( i<n ) if (R[i].key==k) {return ( i ) // found break;} else i++; if ( i==n ) return ( -1 ); //not found } int seq_search ( tableR[ ], int k) { int i=N; //从后向前扫描 R[0].key == k; // 利用R[0]作监视哨 for ( ; R[i].key != k ; i- ) return ( i ) }