您的位置:首页 > 理论基础 > 数据结构算法

转:数据结构——顺序查找

2013-09-29 10:28 302 查看
顺序查找是最简单,最不常用的方法。

其基本思想是:从表的一端开始,依次将每个元素的关键字进行比较, 时间度比较复杂。

#include <stdio.h>

#define LISZTSIZE 150

typedef int Datatype;

struct List

{

Datatype data [LISZTSIZE];

int nLength;

};

void init(struct List *l);

void Length(struct List *l);

void Get(struct List *g,Datatype x);

int main(int argc, const char * argv[])

{

//4.1顺序查找

/*一表长为100的顺序线性存储表,要求使用顺序查找分别查找第9,49, 99个元素输出。

*/

struct List arr;

init(&arr);

Length(&arr);

int x;

printf("请输入要查找的元素:");

scanf("%d",&x);

Get(&arr, x);

getchar();

printf("请再输入要查找的元素:");

scanf("%d",&x);

Get(&arr, x);

getchar();

printf("请再输入要查找的元素:");

scanf("%d",&x);

Get(&arr, x);

return 0;

}

void init(struct List *l)//初始化表长

{

l->nLength=0;

}

void Length(struct List *l)//求表长

{

int number;

printf("请输入表长<150:\n");

scanf("%d",&number);

l->nLength=number;

int num=1;

for (int i=0; i<number; i++)

{

l->data[i]=num;

num++;

}

for (int i=0; i<number; i++)

{

printf("%d\t",l->data[i]);

}

printf("\n");

}

void Get(struct List *g,Datatype x)//顺序查找。

{

if (g->nLength==0)

{

printf("表长为空");

}

for (int i=0; i<g->nLength; i++)

{

if (g->data[i]==x)

{

printf("x=%d在线性表的位置:%d\n",x,i);

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: