打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
数据结构查找
#include<stdio.h>
#define listsize 100
#define max 10
 typedef struct
{
 int data[listsize];
 int length;
}sqlist;//顺序表的类型
void createtsqlist(sqlist &L,int a[],int n)//用数组创建顺序表
{
 L.length=0;
 for(int i=0;i<n;i++)
 {
   L.data[L.length++]=a[i];
 }
}
void findvalue(sqlist L,int x) //查找x是否在顺序表内
{
for(int i=0;i<L.length;i++)
{
if(L.data[i]==x)
{ printf("一般顺序查找\n");
printf("%d是第%d个元素\n  查询了%d次\n",x,i+1,i+1);
return;
}
}
printf("一般顺序查找\n");
printf("%d不在顺序表内\n查询了%d次\n",x,L.length);
}
void search_bin(sqlist L,int x)//折半查找有序表
{
 int low=1;int high=L.length;int mid;int n=0;
 while(low<=high)
 { 
    mid=(low+high)/2;
    n++;
    if(x==L.data[mid])
    {printf("折半查找\n");
     printf("%d是第%d元素\n查询了%d次\n",x,mid+1,n);return;
    }
       else if(x<L.data[mid])high=mid-1;
    else low=mid+1;
  }
printf("折半查找\n");
printf("%d不在顺序表内\n",x);
printf("查询了%d次",n);
}
void main()
{int i,f;
 int a[max];
printf("请依次按递增或递减输入%d个数字,以空格分开\n",max);
for(i=0;i<max;i++)
scanf("%d",&a[i]);
printf("请输入要查询的数字\n");
scanf("%d",&f);
 sqlist L1,L2;//L2创建为有序表
 createtsqlist(L1,a,max);
 findvalue(L1,f);//查找45是否在表内可以换成其他数
 createtsqlist(L2,a,max);
 search_bin(L2,f);//查找14是否在表内可以换成其他数
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【数据结构笔记】顺序表——静态分配
顺序算法
知识分享:数据结构常用 7 种排序算法(无基数排序),建议收藏
动态分配的顺序线性表的十五种操作—C语言实现
动态顺序表的实现及应用
c语言实现顺序表的基本操作
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服