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

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

时间:2024-11-10 22:20:02浏览次数:1  
标签:链表 复杂度 元素 子程序 2024 2025 数组 20241425 节点

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

作业信息

这个作业属于哪个课程 [2024-2025-1-计算机基础与程序设计](https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP)
这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)
这个作业的目标 数组与链表、基于数组和基于链表实现数据结构、无序表与有序表、树、图、子程序与参数
作业正文 https://i.cnblogs.com/posts/edit

教材学习内容总结

.数组‌:是一种线性数据结构,将相同类型元素存储在连续的内存空间中。数组支持随机访问,访问效率高,时间复杂度为O(1)。但在插入和删除元素时,可能需要移动后续的所有元素,以保持连续性,导致最坏情况下的时间复杂度为O(n)。数组的空间大小是固定的,不能进行动态扩展,空间利用率较低。
2‌.链表‌:是一种链式存储结构,不要求逻辑上相邻的两个元素在物理位置上也相邻。链表在插入和删除元素时,只需修改相邻节点的指针,时间复杂度为O(1)(但需知道前驱节点)。然而,查找特定元素或访问特定编号的节点需要从头节点开始遍历,时间复杂度为O(n)。链表可以动态扩展,空间利用率较高。
3.基于数组的数据结构
‌栈(Stack)‌:
实现:可以使用数组来实现栈,其中栈顶指针(top)指向数组的最后一个有效元素。
操作:入栈(push)将新元素添加到栈顶,出栈(pop)移除栈顶元素,查看栈顶元素(peek)但不移除。
特点:由于数组支持随机访问,栈的入栈和出栈操作时间复杂度为O(1)。
‌队列(Queue)‌:
实现:可以使用数组来实现队列,其中队头指针(front)指向队列的第一个元素,队尾指针(rear)指向队列的最后一个元素。
操作:入队(enqueue)将新元素添加到队尾,出队(dequeue)移除队头元素。
特点:在循环队列中,通过巧妙地利用数组的空间,可以实现队列的FIFO(先进先出)特性,且入队和出队操作时间复杂度为O(1)。
‌哈希表(Hash Table)‌:
实现:哈希表通常使用数组来存储哈希桶,每个哈希桶可以存储一个链表或其他数据结构来解决哈希冲突。
操作:插入(insert)、查找(search)和删除(delete)元素。
特点:哈希表通过哈希函数将键映射到数组中的某个位置,实现了快速查找,平均时间复杂度为O(1)。
4.基于链表的数据结构
‌单链表(Singly Linked List)‌:
实现:每个节点包含一个数据域和一个指向下一个节点的指针。
操作:插入(可以在任意位置插入新节点)、删除(删除指定节点)、遍历(访问链表中的所有节点)。
特点:单链表在插入和删除操作时,只需修改相关节点的指针,时间复杂度为O(1)(但需知道前驱节点);查找特定元素需要从头节点开始遍历,时间复杂度为O(n)。
‌双链表(Doubly Linked List)‌:
实现:每个节点包含一个数据域、一个指向下一个节点的指针和一个指向前一个节点的指针。
操作:与单链表类似,但双链表还支持双向遍历。
特点:双链表在插入、删除和查找操作上的性能与单链表相似,但双向遍历提高了灵活性。
‌循环链表(Circular Linked List)‌:
实现:链表的最后一个节点指向头节点,形成一个循环。
操作:与单链表或双链表类似,但循环链表支持循环遍历。
特点:循环链表在某些特定应用场景(如约瑟夫环问题)中具有优势。
5.无序表‌:数据项的排列没有特定顺序,只按照存放位置来索引。例如,一个考试分数的集合“54,26,93,17,77和31”在无序表中就是[54,26,93,17,77,31]。无序表可以采用链表等结构实现,其优点是插入和删除操作灵活,但查找特定元素需要遍历整个表。
‌6.有序表‌:数据项按照某种规则(如递增或递减)排列,表中可存在元素值相同的元素。有序表便于进行二分查找等高效查找操作。在实现上,有序表可能需要采用特定的排序算法来维持其有序性。
7.树(Tree)
‌定义‌:树是一种广泛使用的非线性数据结构,用于表示具有层次关系的数据。它由节点(nodes)和边(edges)组成,其中每个节点可以有零个或多个子节点,但除了根节点外,每个子节点都恰好有一个父节点。
‌类型‌:常见的树结构包括二叉树(每个节点最多有两个子节点)、多叉树(每个节点可以有多个子节点)、搜索树(如二叉搜索树,用于高效查找)、平衡树(如AVL树,用于保持树的高度平衡)等。
‌应用‌:树在文件系统、数据库索引、表达式解析、人工智能等领域有广泛应用。
8.图(Graph)
‌定义‌:图是由节点(或顶点)和连接这些节点的边组成的数据结构。与树不同,图中的节点之间可以有任意数量的连接,包括自连接和环。
‌类型‌:图可以分为有向图(边有方向)和无向图(边没有方向)。还可以根据边的权重分为加权图和非加权图。
‌应用‌:图在计算机网络、交通网络、社交网络分析、最短路径查找、最小生成树等问题中有重要应用。
9.子程序(Subroutine)
‌定义‌:子程序是编程中用于实现特定功能的一段代码块,它可以被主程序或其他子程序调用。子程序通常具有输入参数和输出参数,用于传递数据和返回结果。
‌特点‌:子程序可以提高代码的可重用性和可维护性,使程序更加模块化。通过调用子程序,可以避免重复编写相同的代码,从而减少错误和提高开发效率。
‌应用‌:子程序在软件开发中广泛应用,如函数、过程、方法等。
10.参数(Parameter)
‌定义‌:参数是子程序或函数调用时传递的变量或值。它们用于在调用者和被调用者之间传递数据。
‌类型‌:参数可以分为输入参数(传递给子程序用于处理的数据)和输出参数(子程序处理后返回的数据)。有些编程语言还支持默认参数和可变参数等特性。
‌应用‌:参数在函数调用、方法调用、API接口设计等方面有重要应用。通过合理设计参数,可以确保数据的正确传递和处理,从而实现程序的正确运行和预期功能。

教材学习中的问题和解决过程(先问 AI)

问题1:在程序设计语言的翻译过程中,编译器和解释器各自的优缺点是什么?
解答:
编译器优点:编译后的程序执行效率高,因为它是把整个源程序一次性翻译为机器语言,后续执行时计算机可以直接运行机器语言代码,不需要额外的翻译过程。例如对于大型的、计算密集型的程序,如科学计算软件,使用编译器可以让程序运行得更快。
编译器缺点:调试相对困难。因为编译器是对整个程序进行翻译,如果程序在运行时出现错误,定位错误的难度可能较大。并且,每次修改源程序后都需要重新编译整个程序才能运行。
解释器优点:具有良好的平台可移植性,只要目标平台有对应的解释器,就可以运行程序。而且调试方便,因为是逐行解释执行,当出现错误时可以比较容易地定位到出错的行。例如一些脚本语言,在不同操作系统上,只要安装了相应的解释器就能运行,而且开发过程中如果代码出错能很快发现问题所在。
解释器缺点:执行效率较低,由于是逐行翻译并执行,相比编译后的程序,它需要花费更多的时间在翻译代码这个过程上,对于大型程序或者性能要求高的程序不太适用。
问题2:在C语言的嵌套循环中,如何正确地控制内循环和外循环的执行次数,以实现打印一个九九乘法表?
解答:
九九乘法表是一个典型的二维结构,外循环控制行数,内循环控制列数。

基于AI的学习

标签:链表,复杂度,元素,子程序,2024,2025,数组,20241425,节点
From: https://www.cnblogs.com/darthanakin/p/18538652

相关文章

  • #C. [GESP202409 四级] 黑白方块 GESP四级考级
    这个是具体的代码,孩子的代码问题在子矩阵的判断有问题。就是这几行,没有具体实现。原思路代码块include<bits/stdc++.h>usingnamespacestd;intn,a,b,m[105][105];intmain(){cin>>n;for(inti=1;i<=n;i++){cin>>a>>b;for(intj=1;j<=a;j++){for(int......
  • 2024 湖南省赛(HNCPC 2024)
    C-easymath\[\Pia_i\le2024^b\\\log_2(\Pi2^{k_i})\le\log_2(2024^b)\\\sumk_i\leb\log_22024\]因此答案就是\(b=\frac{\sumk_i}{\log_22024}\)#include<bits/stdc++.h>usingnamespacestd;usingi32=int32_t;usingi64......
  • 2024年(2025届)四非电子通信保研推免经历(北邮、西电、西工大、天大等)
    前言写下这篇博客的原因在于自己保研期间刷了很多很多的经验贴,保研过程中充满了大量的信息差,一路走来听了很多学长学姐讲述了自己的经历,感觉收获颇丰。所以希望能将自己的经历也分享下去,如果以后的学弟学妹能获得一点点帮助,那就再好不过了。一、保研黑话rk:绩点/均分/综测的......
  • 多校A层冲刺NOIP2024模拟赛20
    多校A层冲刺NOIP2024模拟赛20昨天晚上打ABC了,所以今天才发。T1星际联邦直接上菠萝(Borůvka)算法就行了,当然还可以用线段树优化prim算法,但是没打过只是口胡:就是维护当前的连通块,但一个点$i$加入连通块时,后面那些点就可以有$a_j-a_i$的贡献,前面的点可以有$a_i-......
  • 2024-2025-1 学号20241306 《计算机基础与程序设计》第7周学习总结
    2024-2025-1学号20241306《计算机基础与程序设计》第7周学习总结作业信息这个作业属于哪个课程<班级的链接>2024-2025-1-计算机基础与程序设计这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标了解学习数组与链......
  • 2025年航天航空工程与材料技术国际会议(AEMT 2025) 2025 International Conference on
    @目录一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题一、会议详情二、重要信息大会官网:https://ais.cn/u/vEbMBz三、大会介绍四、出席嘉宾五、征稿主题如想"投稿"请点击如下图片......
  • 2025年第五届消费电子与计算机工程国际学术会议(ICCECE 2025) 2025 5th International
    @目录一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题一、会议详情二、重要信息大会官网:https://ais.cn/u/vEbMBz三、大会介绍四、出席嘉宾五、征稿主题如想"投稿"请点击如下图片......
  • CSP-J/S 2024游记
    年代久远,有些内容记不太清了。初赛Day-n~0做做了n遍的模拟卷。(明年再也不做了)Day1面到了一桶人。zyf和ikun在跟lzt的同学打听lzt的一些秘密。zyf'sbrother在玩自动伞,非常善。他试图把伞发射到楼上去,但后来伞虚了。J和S都和zqy一个考场。JT1错了,真抽象。(......
  • 第四届智能系统、通信与计算机网络国际学术会议(ISCCN 2025) 2025 4th International C
    @目录一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题一、会议详情二、重要信息大会官网:https://ais.cn/u/vEbMBz三、大会介绍第四届智能系统、通信与计算机网络国际学术会议(ISCCN2025)将于2025年2月21-23日在中国南宁隆重召开。会议旨在将“智能系统”“......
  • 第二届生成式人工智能与信息安全国际学术会议(GAIIS 2025) 2025 2nd International Con
    @目录一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题一、会议详情二、重要信息大会官网:https://ais.cn/u/vEbMBz三、大会介绍四、出席嘉宾五、征稿主题如想"投稿"请点击如下图片......