码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 顺序表基本操作-查找


    目录

    问题描述 

    程序设计 

    程序分析

    本节文章


    问题描述 

    【问题描述】

    实现可变长顺序表的查找算法。任务要求:通过顺序表的初始化、插入建立顺序表,根据查找要求,返回查找结果。

    【输入形式】

    第一行输入整数N(1<=N<=100),M(1<=M<=100)。N表示创建长度为N的顺序表;M表示输入M个查找的关键值。

    第二行输入N个整数,表示顺序表的N个元素,依次放入表中;

    接下来输入M个查找的关键值。

    【输出形式】

    对于每个查找关键值,若找到,输出其在顺序表的位序,若未找到,输出“no”。

    【样例输入】

    5 2

    10 20 30 40 50

    30

    -9

    【样例输出】

    3

    no 

    程序设计 

    1. #include
    2. #include
    3. #define MAX 10
    4. #define IN 10
    5. typedef struct List{
    6.     int *data;
    7.     int len;
    8.     int size;
    9. }List,*PList;
    10. int Init(PList L){
    11.     L->data=(int *)malloc(sizeof(int)*MAX);
    12.     L->len=0;
    13.     L->size=MAX;
    14.     return 1;
    15. }
    16. int Create(PList L,int n){
    17.     int i;
    18.     while(L->size<=n){
    19.         L->data=(int *)realloc(L->data,sizeof(int)*(L->size+IN));
    20.         L->size+=IN;
    21.     }
    22.     for(i=0;i
    23.         scanf("%d",&L->data[i]);
    24.         L->len++;
    25.     } 
    26.     return 1;
    27. }
    28. int Print(PList L){
    29.     int i;
    30.     for(i=0;ilen;i++){
    31.         printf("%d ",L->data[i]);
    32.     }
    33.     printf("\n");
    34.     return 1;
    35. }
    36. int Find(PList L,int m){
    37.     int i,j,e,t;
    38.     for(i=0;i
    39.         t=-1;
    40.         scanf("%d",&e);
    41.         for(j=0;jlen;j++){
    42.             if(L->data[j]==e){
    43.                 t=j+1;
    44.                 break;
    45.             }
    46.         }
    47.         if(t==-1){
    48.             printf("no\n");
    49.         }else{
    50.             printf("%d\n",t);
    51.         }
    52.     }
    53.     return 1;
    54. }
    55. int main(){
    56.     List L;
    57.     Init(&L);
    58.     int n,m;
    59.     scanf("%d %d",&n,&m);
    60.     Create(&L,n);
    61.     Find(&L,m);
    62.     return 0;
    63. }

    程序分析

    这是一段使用动态数组实现顺序表的代码,其中定义了一个结构体List,包含三个成员变量:data(即动态数组指针)、len(表长)和size(动态数组空间大小)。下面分别介绍每个函数的作用:

    1. Init函数

    初始化顺序表,给动态数组分配空间并初始化表长和数组空间大小。

    2. Create函数

    创建顺序表,即给顺序表中的元素赋值,需要输入元素的个数n,如果n大于当前数组空间大小,则需要重新分配空间。循环输入n个元素,并将表长len加1。

    3. Print函数

    输出顺序表中的元素。

    4. Find函数

    查找顺序表中的元素,需要输入查找的次数m和每次查找的元素值。循环查找每次输入的元素值是否在数组中出现,如果出现则返回元素位置,并输出“位置+1”,否则输出“no”。

    在主函数中,首先初始化顺序表,输入元素个数n和查找次数m,调用Create函数创建顺序表,再调用Find函数查找顺序表中的元素。

    以上是该段代码的主要逻辑和作用。

    本节文章

    顺序表
    1C语言实现顺序表的插入、删除https://want595.blog.csdn.net/article/details/126967798
    2顺序表基本练习-初始化、插入和输出https://want595.blog.csdn.net/article/details/127737121
    3顺序表基本练习-删除元素https://want595.blog.csdn.net/article/details/127737165
    4顺序表基本操作-查找https://want595.blog.csdn.net/article/details/127737191
    5顺序表删除重复元素https://want595.blog.csdn.net/article/details/126998125
    6顺序表实现集合并集https://want595.blog.csdn.net/article/details/127737454
    7顺序表元素循环左移(new)https://want595.blog.csdn.net/article/details/128281975
    8删除顺序表中最小值https://want595.blog.csdn.net/article/details/126984319
    9递增顺序表插入https://want595.blog.csdn.net/article/details/126990708
    10将顺序表非零元素依次移到表的前端https://want595.blog.csdn.net/article/details/127737349
    11删除顺序表中第一个值等于x的元素https://want595.blog.csdn.net/article/details/127619864
    12在顺序表中,输入一个元素插入到原表的最小元素之前https://want595.blog.csdn.net/article/details/127365247
  • 相关阅读:
    清华操作系统笔记2
    Linux内核之tasklet机制
    应急响应靶机训练-Web2【题解】
    鸿鹄工程项目管理系统em Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统
    【小程序】基于SpringBoot开发的餐厅点餐系统
    做大数据开发一定要知道几个重要的框架和工具及知识点
    【免费模板】2023数学建模国赛word+latex模板免费分享
    分布式事务(Seata) 四大模式详解
    素数和_C语言
    网络协议--Traceroute程序
  • 原文地址:https://blog.csdn.net/m0_68111267/article/details/127737191
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号