数据结构——顺序查找

来源:互联网 发布:大学生衣服淘宝店铺 编辑:程序博客网 时间:2024/05/22 13:00

顺序查找是最简单,最不常用的方法。

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


#include <stdio.h>

#define LISZTSIZE 150

typedefint  Datatype;

struct List

{

   Datatype data [LISZTSIZE];

   int nLength;

};

void init(structList *l);

void Length(structList *l);

void Get(structList *g,Datatype x);

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

{

    //4.1顺序查找

   /*一表长为100的顺序线性存储表,要求使用顺序查找分别查找第949 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(structList *l)//初始化表长

{

    l->nLength=0;


}


void Length(structList *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(structList *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);

        }

    }

    


}



原创粉丝点击