int IntCmp(void *vp1,void *vp2) { if(vp1!=NULL && vp2!=NULL) { return *(int*)(vp1)- *(int*)(vp2); } return -1; } void *lsearch(void *key,void *base,int elemsize,int size,int(*cmp)(void*,void*)) { void *elemAddr; for(int i=0;i<size;i++) { (void*)elemAddr = (char*)base + i*elemsize; //队列的下一个 if(cmp(key,elemAddr)==0) return elemAddr; } return NULL; } int lsearchArray[]={1,3,5,7,9}; int key = 4; int *intfound = (int*)lsearch(&key,lsearchArray,sizeof(int),5,IntCmp); if(intfound!=NULL) printf("found=%d and found address%p\n",intfound[0],intfound); else printf("nothing found");
线性查找
最新推荐文章于 2024-07-10 23:02:13 发布