赞
踩
按值查找是在顺序表L中查找第一个元素等于e的元素,并返回其位序。
时间复杂度O(n)。
按位查找是在顺序表中查找位序为i的元素,并返回e。
时间复杂度O(1)。
#include <iostream> #include<stdlib.h> #define initsize 10 using namespace std; typedef struct{ int *data; int length; int maxsize; }sqlist; void initlist(sqlist &l) //初始化list { l.data=(int *)malloc(initsize*sizeof(int)); l.length=0; l.maxsize=initsize; } void fuzhilist(sqlist &l) //赋初始值 { for(int i=0;i<6;i++) { l.data[i]=i+3; l.length++; } } int getelem(sqlist l,int i) //按位查找 { if(i<1||i>l.length) return 0; else return l.data[i-1]; } int locatelem(sqlist l,int e) //按值查找 { for(int i=0;i<l.length;i++) { if(l.data[i]==e) return i+1; } return 0; } void printlist(sqlist l) //打印表 { for(int i=0;i<l.length;i++) { cout<<"number "<<i+1<<" is "<<l.data[i]<<endl; } } int main() { sqlist l; initlist(l); fuzhilist(l); printlist(l); cout<<locatelem(l,7)<<endl; //按值查找,查找e为7的位序 cout<<getelem(l,3)<<endl; //按位查找,查找位序为3的元素 return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。