版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37345402/article/details/87539265
顺序查找:
//在elem[1]~elem[n]中查找关键字为k的数据元素
int SequentialSearch(SSTable ST,char k){
ST.elem[0]=k;//哨兵
int i;
for(i=ST.length;ST.elem[i]!=k;i--);//从后往前找
return i;
}
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef struct LNode{
char *elem;
int length;
}SSTable;
void create(SSTable &ST,int n){
ST.elem=(char*)malloc((n+1)*sizeof(char));
ST.length=0;
char ch;
for(int i=1;i<=n;i++){
scanf("%c",&ch);
ST.elem[i]=ch;
ST.length++;
}
}
void destory(SSTable &ST){
if(ST.elem){
free(ST.elem);
}
ST.elem=NULL;
ST.length=0;
}
//在elem[1]~elem[n]中查找关键字为k的数据元素
int SequentialSearch(SSTable ST,char k){
ST.elem[0]=k;//哨兵
int i;
for(i=ST.length;ST.elem[i]!=k;i--);//从后往前找
return i;
}
void Print(SSTable ST){
for(int i=1;i<=ST.length;i++){
printf("%c ",ST.elem[i]);
}
printf("\n");
}
int main(){
SSTable ST;
create(ST,6);
Print(ST);
printf("b所在的位序为:%d\n",SequentialSearch(ST,'b'));
printf("m所在的位序为:%d\n",SequentialSearch(ST,'m'));
destory(ST);
return 0;
}