改进算法: int seq search2 (Se list a, keytype k) {/设置了监视哨的顺序表査找,查找关键字值等于指定 值k的记录, 若査找成功,返回记录存放位置的下标值,否则返回0 En a[0 key=k; while(alil.key =k)i- return(i) 请单市鼠标左键换页
改进算法: int seq_search2 (Se_List a,keytype k) { //设置了监视哨的顺序表查找,查找关键字值等于指定 值k的记录, //若查找成功,返回记录存放位置的下标值,否则返回0 i=n ; a[0].key=k ; while ( a[i].key != k) i--; return ( i ) ; }
3.链表的顺序查找 链表的顺序查找是指将查找表作为线性表并以链 式存储结构存储,用顺序査找方法查找与指定关键字 值相等的记录。 链表的类型定义如下所示 typedef struct node i keytype key;W结点的关键字类型 anytype otheritem;∥结点的其他成分 struct node *next: ∥指向链表结点的指针 3Link Node, *Link: 请单市鼠标左键换页
3. 链表的顺序查找 链表的顺序查找是指将查找表作为线性表并以链 式存储结构存储,用顺序查找方法查找与指定关键字 值相等的记录。 链表的类型定义如下所示: typedef struct node { keytype key; //结点的关键字类型 anytype otheritem; //结点的其他成分 struct node *next; //指向链表结点的指针 }Link_Node,*Link;
将查找表中的数据元素用这种结构的结点表示, 并以指向头结点的指针标识。 对链表实现顺寻查找就是在有头结点的链式查找 表中查找关键字值等于给定值的记录,若查找成功, 返回指向相应结点的指针,否则返回空指针。 请单市鼠标左键换页
将查找表中的数据元素用这种结构的结点表示, 并以指向头结点的指针标识。 对链表实现顺寻查找就是在有头结点的链式查找 表中查找关键字值等于给定值的记录,若查找成功, 返回指向相应结点的指针,否则返回空指针
Link Node link search (Link h, keytype k) Uink为带头结点链表的头指针,查找关键字值等 于k的记录, ∥找成功,返回指向找到的结点的指针,查找 失败返回空指针 p=h->next; while((p=null)&&(p->key!=))p=p->next; return p 顺序查找算法简单,对表的结构无任何要求;但 是执行效率较低,尤其当n较大时,不宜采用这种查找 方法。 请单市鼠标左键换页
Link_Node *link_search (Link h , keytype k) {//link为带头结点链表的头指针,查找关键字值等 于k的记录, //查找成功,返回指向找到的结点的指针,查找 失败返回空指针 p=h->next; while ((p!=NULL) && (p->key!=k)) p=p->next; return p; } 顺序查找算法简单,对表的结构无任何要求;但 是执行效率较低,尤其当n较大时,不宜采用这种查找 方法
7.2.2折半查找 1.折半查找的基本思想 折半查找要求查找表用顺序存储结构存放且各数 据元素按关键字有序(升序或隆序)排列,也就是说 折半查找只适用于对有序顺序表进行查找。 请单市鼠标左键换页
7.2.2 折半查找 1. 折半查找的基本思想 折半查找要求查找表用顺序存储结构存放且各数 据元素按关键字有序(升序或隆序)排列,也就是说 折半查找只适用于对有序顺序表进行查找