首页 > 编程语言 >2024-2025-1 20241312 《计算机基础与程序设计》第7周学习总结

2024-2025-1 20241312 《计算机基础与程序设计》第7周学习总结

时间:2024-11-08 22:21:47浏览次数:1  
标签:链表 函数 树结构 scanf 2024 2025 数据结构 20241312 输入

|这个作业属于哪个课程|2024-2025-1-计算机基础与程序设计|
|这个作业要求在哪里|2024-2025-1计算机基础与程序设计第七周作业|
|这个作业的目标|①数组与链表 ②基于数组和基于链表实现数据结构 ③无序表与有序表 ④树 ⑤图 ⑥子程序与参数|
|作业正文|https://www.cnblogs.com/songjialinsjl/p/18535982|

教材学习内容总结

① 数组与链表:

数组:一种线性数据结构,用于存储相同类型的元素。数组中的元素是连续存储的,可以通过索引直接访问。
链表:也是一种线性数据结构,由节点组成,每个节点包含数据部分和指向下一个节点的指针。链表中的元素不是连续存储的,访问任意元素需要从头节点开始遍历。
② 基于数组和基于链表实现数据结构:

基于数组的数据结构:如动态数组、栈、队列等,它们使用数组作为底层存储结构。
基于链表的数据结构:如单链表、双链表、链式栈、链式队列等,它们使用链表作为底层存储结构。
③ 无序表与有序表:

无序表:数据元素之间没有特定的顺序,如哈希表、无序链表等。
有序表:数据元素按照一定的顺序排列,如有序数组、二叉搜索树等。
④ 树:

树是一种非线性数据结构,由节点组成,每个节点有零个或多个子节点。树结构用于表示具有层次关系的数据,如家族树、文件系统等。
⑤ 图:

图是一种复杂的非线性数据结构,由顶点(节点)和边组成,边表示顶点之间的关系。图可以用于表示网络、交通图、社交网络等。
⑥ 子程序与参数:

子程序:也称为函数或方法,是一段执行特定任务的代码块。子程序可以被重复调用,以执行相同的任务。
参数:是传递给子程序的值,用于定制子程序的行为。参数可以是输入参数(传递给子程序的值)和输出参数(子程序计算后返回的值)。

函数定义与声明:

定义:函数的定义包括函数的名称、返回类型、参数列表、函数体等。
声明:函数的声明告诉编译器函数的名称、返回类型和参数类型,但不包括函数体。声明通常在函数定义之前,用于告知编译器函数的存在和接口。
调用函数:

函数调用是程序执行时,请求另一个函数执行的过程。
调用函数时,程序会跳转到被调用函数的代码,执行完毕后返回到调用点继续执行。
参数传递:

传值调用:参数的值被复制到函数的参数中,函数内部对参数的修改不会影响原始变量。
传址调用:参数的地址被传递给函数,函数内部可以通过地址修改原始变量的值。
返回值:

函数可以返回一个值给调用者,这个值通过函数的返回类型指定。
返回值通过特定的寄存器或内存区域传递回调用者。
堆栈和帧:

每次函数调用时,都会在调用栈上创建一个新的栈帧(stack frame),包含局部变量、返回地址等信息。
函数执行完毕后,其栈帧会被销毁,控制权返回给调用者。
递归调用:

递归函数是调用自身的函数,用于解决可以分解为相似子问题的问题。
递归需要有明确的结束条件,否则会造成无限递归。
重载与覆盖:

重载:在C++等语言中,函数名相同但参数列表不同的函数可以共存,这称为函数重载。
覆盖:在面向对象编程中,子类可以提供一个与父类同名的函数,这称为方法覆盖。
内联函数:

内联函数是一种特殊的函数,编译器会在编译时将其代码直接插入到调用点,以减少函数调用的开销。
尾递归优化:

尾递归是一种特殊的递归形式,函数的返回值是另一个函数调用的结果,且该调用是函数体中的最后一个操作。
一些编译器可以优化尾递归,避免使用额外的栈帧,从而减少栈空间的使用。
函数指针:

函数指针是指向函数的指针,可以用来存储函数的地址,并通过指针调用函数。

提问:如何更改scanf的函数

回答:在C语言中,scanf 是一个标准的库函数,用于从标准输入(通常是键盘)读取格式化输入。由于 scanf 是定义在 <stdio.h> 头文件中的库函数,你不能直接更改其定义。但是,你可以采取以下几种方法来实现类似的功能或者改变其行为:

  1. 使用 scanf 的替代函数
    你可以使用 scanf 的安全版本 scanf_s(在某些编译器中可用),它允许你指定缓冲区大小,从而避免缓冲区溢出的问题。

    #include <stdio.h>
    
    int main() {
        int num;
        // 使用 scanf_s 替代 scanf
        scanf_s("%d", &num);
        printf("输入的数字是:%d\n", num);
        return 0;
    }
    
  2. 封装 scanf
    你可以创建一个自己的函数,内部调用 scanf,并在调用前后添加额外的逻辑,比如输入验证。

    #include <stdio.h>
    
    int myScanf(const char* format, ...) {
        va_list args;
        va_start(args, format);
        int result = vsscanf(stdin, format, args);
        va_end(args);
        return result;
    }
    
    int main() {
        int num;
        // 调用自定义的 myScanf 函数
        if (myScanf("%d", &num) == 1) {
            printf("输入的数字是:%d\n", num);
        } else {
            printf("输入错误\n");
        }
        return 0;
    }
    
  3. 使用其他输入函数
    你可以使用其他输入函数,如 fgets 来读取一行输入,然后使用 sscanfstrtol 等函数解析输入。

    #include <stdio.h>
    #include <stdlib.h>
    
    int main() {
        char buffer[100];
        int num;
    
        if (fgets(buffer, sizeof(buffer), stdin) != NULL) {
            num = strtol(buffer, NULL, 10);
            printf("输入的数字是:%d\n", num);
        } else {
            printf("读取输入失败\n");
        }
        return 0;
    }
    
  4. 改变 scanf 的行为
    你可以通过设置 scanf 的行为,比如使用 setvbuf 改变标准输入的缓冲行为,但这通常不是推荐的做法,因为它会影响整个程序的标准输入。

请注意,scanf 和其他标准输入函数可能会导致安全问题,如缓冲区溢出,因此在实际编程中,推荐使用更安全的替代方案。

基于AI的学习

苏格拉底方式提问一次一个问题

当然可以,苏格拉底式提问是一种通过提问引导对方思考和自我发现的方法。我会问你一个问题,然后根据你的回答再提出下一个问题。让我们开始吧:

第一个问题:你最近在学习或工作中遇到了哪些挑战?

和刚刚说的有关的问题

明白了,既然你提到了与之前讨论的数据结构和算法相关的问题,那么我问你:

你能否描述一下,在你最近遇到的编程问题中,是如何处理数据结构的选择问题的?比如,你是如何决定使用数组而不是链表,或者选择树而不是图的?

由一到多逐级递增用树,不断交错用图

非常好,你的描述捕捉了树和图在数据结构中的一些基本用途。现在,让我们深入一步:

你能否详细说明一下,在什么具体场景下,你会选择使用树结构来处理“由一到多逐级递增”的数据关系?同样,对于“不断交错”的关系,你又是如何决定使用图结构的?

比如大纲到具体我用树

明白了,树结构确实适合用来表示层次化和包含关系的数据,比如大纲到具体内容的组织。这种结构允许你有一个清晰的根节点,然后逐级展开细节。

接下来的问题:你能举一个具体的例子吗?比如在哪个领域或者哪种类型的应用中,你会使用树结构来组织信息,并且这个结构是如何帮助你解决问题的?

药品的分类

药品分类使用树结构是一个非常合适的选择,因为药品分类本身就是一个多层次、有包含关系的体系。以下是树结构在药品分类中的应用:

层次性:药品分类通常具有明显的层次性,从大类到小类逐级细分。例如,药品可以首先分为化学药品、生物制品、中药等大类,然后每个大类下又可以细分为多个小类,如化学药品下可以分抗感染药、抗肿瘤药等。

包含关系:树结构能够很好地表示药品之间的包含关系。每个节点代表一个分类,子节点代表更具体的子分类。这种结构使得药品的分类和检索变得直观和有序。

信息共享与合作:研究人员、医生、制药公司等可以根据技术分类进行信息共享和合作,促进医药领域的进步和创新。

数据挖掘与决策树:在药物选择模型中,决策树方法被用来从大量数据中提取有价值的信息,帮助解决医疗诊断、风险评估等决策问题

临床研究数据分析:决策树模型在临床研究数据分析中也有应用,它通过特征选择、决策树的生成和剪枝来构建模型,帮助提升分类效果

药物技术分类:药物技术分类可以根据作用机制、分子靶点、药物来源、化学结构、疾病治疗等多个维度进行,这种多维度的分类方式非常适合用树结构来组织。

综上所述,树结构在药品分类中的应用有助于实现药品信息的系统化管理和快速检索,同时也为药品的研究、开发和使用提供了便利。

确实

.

标签:链表,函数,树结构,scanf,2024,2025,数据结构,20241312,输入
From: https://www.cnblogs.com/songjialinsjl/p/18535982

相关文章

  • 20241108
    T1小鸣的疑惑观察发现第一项贡献恒正,第二项贡献恒负,第三项贡献为\(0\),并且一项的贡献与后面无关。于是套用对第三项的分析会发现从第三项往后的所有东西贡献都是\(0\)。于是答案为\(a_1-a_2\)。代码#include<iostream>#defineintlonglongusingnamespacestd;c......
  • 【题解】「NOIP2024模拟赛24 T3」钙绿
    【题解】「NOIP2024模拟赛24T3」钙绿https://www.becoder.com.cn/contest/5715/problem/3\(\mathcal{Description}\)给定\(n,p,m\)。对于每个\(k=0,1,\dots,m\),统计满足下面条件的\(n\)位\(10\)进制数:(允许前导零各位数之和不超过\(k\)。\(p\)能整除这个数。数据......
  • 2024/11/8日 日志 关于Servlet ----(上)
    简介与快速入门点击查看代码--Servlet是Java提供的一门动态web资源开发技术--Servlet是JavaEE规范之一,其实就是一个接口,将来我们需要定义Servlet类实现Servet接口,并由web服务器运行Servlet--publicinterfaceServlet--Definesmethodsthatallservletsmustimpl......
  • 第二届城市建设与交通运输国际学术会议(UCT 2025) 2025 2nd International Conference
    @目录一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题一、会议详情二、重要信息大会官网:https://ais.cn/u/vEbMBz三、大会介绍据统计,我国常住人口城镇化率超过65%,部分城市城镇化率超过90%,未来预计还会不断提升。城市建设行业的发展仍处于蓬勃发展的时期。......
  • 这些实时互动 AI 场景正在涌现生长,也预示着多模态 AI 的未来|RTE2024 声网CEO赵斌演讲
    10月25日,在RTE2024第十届实时互联网大会主论坛上,声网创始人兼CEO赵斌发表了《实时互动十年:从WebRTC到生成式AI时代的RTE》主旨演讲。 赵斌认为,生成式AI正在驱动IT行业发生大变革,这一趋势主要体现在四个层面:终端、软件、云以及人机界面。在这样的时代背景下,生成式......
  • CSP 2024-S 游记 黑暗的枷锁
    09-21今天考完了初赛,明显感觉数学门槛变高了一些,有高中数学知识才能保证看得懂题意,只是苦了小学和初中同学,看数据参加人数还涨了50%,权当拉低分数线了吧。用小图灵估分70。应该是稳过。09-28出分了,刚好70,稳过。竟然和小图灵估的一分不差。10-25复赛前一天晚上,停课的竞赛生们都......
  • 2024网鼎杯-初赛-青龙组
    初赛-青龙组题目附件下载:https://pan.baidu.com/s/1VbieB2XhNYtRqfBeLxguYw?pwd=c03iMiscmisc02​​生蚝:foremost分离,zsteg对最大的png,得到Y3p_Ke9_1s_?????搜7z找到压缩包,然后掩码爆破,得到flag.txt,然后写脚本爆破。得到字符串我们先用foremost分离题目给的flag,因......
  • 20241107全国计算机二级Python优秀过级(大头博士计算二级)
    2024年11月7日今天全国计算机二级可以查分了,并下载证书了全国计算机等级考试(NCRE)成绩查询-中国教育考试网查看证书下载证书拿了一张200g的白色卡纸正反打印正反打印,机器有点走墨,晕开了,算了,反正有电子证,打印一张是留着备用的这张证书不能抵扣个人所得税,所以......
  • MLLM_20241101
    Paper1题目:LongVU:SpatiotemporalAdaptiveCompressionforLongVideo-LanguageUnderstanding作者团队:MetaAI,KAUST,KoreaUniversity链接:https://arxiv.org/abs/2410.174341.论文试图解决什么问题?是否是一个新问题?MLLM长视频理解问题。是新问题。2.有哪......
  • MLLM_20241025
    Paper1题目:Yo’LLaVA:YourPersonalizedLanguageandVisionAssistant作者:ThaoNguyen,HaotianLiu,YuhengLi,MuCai,UtkarshOjha,YongJaeLee团队:UniversityofWisconsin–Madison(LLaVA原作者团队)链接:https://thaoshibe.github.io/YoLLaVA/1.论文试......