赞
踩
说明:
顺序表的查找,分为按照位置查找,返回对应值和按照值查找,返回该值位置、
思路:
因为顺序表都是连续存放的,所以方便随机存取,只需遍历找值或者给出位置取数,便可存放值。
代码如下:
- #include <stdio.h>
- #include <malloc.h>
- #define initsize 10
- typedef struct //定义一个动态顺序表的结构体,并起别名为sqlist
- {
- int *data; //因为是动态数组,所以先定一个指针,表示数组,后面malloc动态分配即可
- int max;
- int length;
-
- }sqlist;
- int getlist(sqlist &l,int k)//按位查找,通过位置定值
- {
- if(k-1<1 || k-1>l.length)
- return 0;
- else
- return l.data[k-1];
- }
- int locatelist(sqlist &l,int k)//按值查找,然后从头到尾,进行遍历,直到找到为止
- {
- int i;
- for(i=0;i<l.length;i++)
- {
- if(l.data[i]==k)
- return i-1;
- }
- }
-
- void initlist(sqlist &l)//初始化顺序表操作,并创建动态数组
- {
- l.data=(int*)malloc(sizeof(int)*initsize);
- l.length=0;
- l.max=initsize;
- }
-
- int main()
- {
- sqlist l;
- initlist(l);
- //给顺序表赋初始值
- int i;
- printf("max=%d\n",l.max);
- for(i=0;i<5;i++)
- {
- l.data[i]=i+1;
- l.length++;
- printf("%d ",l.data[i]) ;
- }
- printf("\n按位查找为%d\n",getlist(l,3));
- printf("按值查找为%d\n",getlist(l,3));
-
-
-
- return 0;
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。