算法设计题目一 顺序表查找

/*设顺序表中的关键字是递增有序的,将监视哨设在高下标端,设计算法实现简单顺序查找*/

#include “stdio.h”

#include “malloc.h”

#define LIST_SIZE 20

 

typedef struct{

         charr[LIST_SIZE];

         intlength; //length为表中元素的个数

}RecordList;

 

RecordList *SqLset(){  //建立顺序表

         RecordList*L;

         inti=0;char c;

         L=(RecordList*)malloc(sizeof(RecordList));

         scanf(“%c”,&c);//输入一个字符

         L->length= 0;

         while(c!=’#’){

                   L->r[i]=c;

                   L->length++;

                   i++;

                   if(L->length== LIST_SIZE-1) break;

                   scanf(“%c”,&c);

         }

         return(L);

}

 

int SequenSearch(RecordList *L,char k,intn){//实现在高下标端,简单顺序查找元素

         inti=0,position=-1;//position为查找到的位置

         L->r[n]=k;//最后一个单元作为监视哨

         while(n!=i){

                   if(L->r[i]== k){

                            position= i+1;

                            break;

                   }

                   i++;

         }

         returnposition;

}

 

int main(){

         RecordList*A;

         intm;

         charc;

         printf(“请输入数据(字符类型)”);

         A= SqLset();

         printf(“请输入要查找的元素”);

          c=getchar();//吃点回车符

         scanf(“%c”,&c);

         m= SequenSearch(A,c,A->length);

         if(m== -1)

         printf(“查找不成功!”);

         else

         printf(“m=%d,查找成功!”,m);

         return0;

}

运行截图:

    原文作者:查找算法
    原文地址: https://blog.csdn.net/u013995946/article/details/40074851
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞