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

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

时间:2024-11-09 21:32:18浏览次数:1  
标签:20241403 链表 插入 元素 子程序 2024 2025 数据结构 节点

学期(如2024-2025-1) 学号(如:20241403) 《计算机基础与程序设计》第7周学习总结

作业信息

这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计
这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)
这个作业的目标 数组与链表 基于数组和基于链表实现数据结构 无序表与有序表 树 图 子程序与参数
作业正文 https://www.cnblogs.com/chenqiqi/p/18537314

教材学习内容总结

一、数组与链表

  1. 数组:

• 是一组具有相同数据类型的元素的集合,在内存中连续存储。

• 可以通过索引快速访问特定元素,但插入和删除元素可能需要移动大量元素,效率较低。

• 适用于需要频繁随机访问元素的场景。

  1. 链表:

• 由一系列节点组成,每个节点包含数据和指向下一个节点的指针。

• 插入和删除元素相对容易,只需修改指针即可,但随机访问元素需要遍历链表,效率较低。

• 适用于频繁进行插入和删除操作的场景。

二、基于数组和链表实现数据结构

  1. 基于数组实现:

• 可以实现栈、队列等数据结构。例如,用数组实现栈时,可以利用数组的一端作为栈顶,进行入栈和出栈操作。

• 优点是实现简单,随机访问快;缺点是可能浪费空间,插入和删除效率低。

  1. 基于链表实现:

• 同样可以实现栈、队列等数据结构。例如,用链表实现队列时,链表的一端作为队首,另一端作为队尾,进行入队和出队操作。

• 优点是灵活,插入和删除效率高;缺点是实现相对复杂,随机访问慢。

三、无序表与有序表

  1. 无序表:

• 表中的元素没有特定的顺序。

• 插入元素时,只需将元素添加到合适的位置即可,无需考虑顺序。

• 查找元素时,需要遍历整个表,效率较低。

  1. 有序表:

• 表中的元素按照一定的顺序排列。

• 插入元素时,需要找到合适的位置插入,以保持顺序。

• 查找元素时,可以利用顺序进行高效的查找,如二分查找等。

四、树

  1. 定义与结构:

• 树是一种非线性数据结构,由节点和边组成。

• 最顶层的节点称为根节点,没有子节点的节点称为叶节点。

• 节点之间的关系可以用父子关系来描述。

  1. 二叉树:

• 每个节点最多有两个子节点的树。

• 可以进行遍历操作,如前序遍历、中序遍历和后序遍历。

• 常用于搜索和排序等场景。

五、图

  1. 定义与结构:

• 图是由顶点和边组成的非线性数据结构。

• 边可以有方向和权重。

• 图可以分为有向图和无向图。

  1. 应用场景:

• 常用于网络路由、社交网络分析、地图导航等领域。

六、子程序与参数

  1. 子程序:

• 也称为函数或方法,是一段可以独立执行的代码块。

• 可以接受参数,进行特定的操作,并返回结果。

  1. 参数传递:

• 形参是在定义子程序时使用的参数,仅在子程序内部有效。

• 实参是在调用子程序时传递给子程序的具体数值或变量。

• 参数传递可以是值传递或引用传递。

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

  • 问题1:在基于链表实现栈的数据结构中,入栈和出栈操作的时间复杂度是多少?
  • 问题1解决方案:在基于链表实现栈时,入栈操作只需要在链表头部插入一个节点,时间复杂度为 O(1)。出栈操作也只需要删除链表头部的节点,同样时间复杂度为 O(1)。
    因为链表的插入和删除操作在头部进行时,只需要修改指针,不需要移动大量元素,所以时间复杂度较低。

基于AI的学习





代码调试中的问题和解决过程

  • 问题1:用pow(n,1/3)表示=n的三分之一次方,结果确实一直是1
  • 问题1解决方案:应改为pow(n,1.0/3.0)或pow(n,1.0/3)或pow(n,1/3.0)因为1/3的结果是0,在c语言中1和3都是整形,结果也应该是整形,所以是0;当把其中一个改为浮点数后结果也就不再是整形了。

其他(感悟、思考等,可选)

我有时候还是会犯一些语法错误,这就需要多加练习来弥补。学习c语言是一个循序渐进地过程,须要不断积累。
有些题目须要很强的数学能力,这方面我还是有所欠缺。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90

标签:20241403,链表,插入,元素,子程序,2024,2025,数据结构,节点
From: https://www.cnblogs.com/chenqiqi/p/18537314

相关文章

  • 『模拟赛』多校A层冲刺NOIP2024模拟赛20
    RankmissionfailedA.星际联邦由于急着想切题,上来没细看就打了个树状数组上去,果然寄了,然后又各种方式优化,最终还是寄了,只有50pts。正解是学最小生成树时直接跳过的prim和菠萝,但是偏不这么做,而是找性质得出严格\(\mathcal{O(n)}\)的做法。首先比较平凡发现一个点的最......
  • 2024-2025-1 20241319 《计算机基础与程序设计》第七周学习总结
    作业信息这个作业属于哪个课程2024-2025-1-计算机基础与程序设计这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK07这个作业的目标数组与链表基于数组和基于链表实现数据结构无序表与有序表树图子程序与参数作业正文https://www.c......
  • 2024-2025-1 20241307《计算机基础与程序设计》第七周学习总结
    作业信息这个作业属于哪个课程(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里(2024-2025-1计算机基础与程序设计第七周作业)这个作业的目标作业正文(2024-2025-1学号20241307《计算机基础与程序设计》第七周学习总结)教材学习内容总结《计算机科学概......
  • 网鼎杯2024 MISC04
    网鼎杯2024MISC04新知识:peano曲线下载文件是一个看起来特别无序的图片应该是经过了某种算法,但是我并没有见过,所以是看了wp是一种图像加密算法,需要把这个红线还原重组成二维码,搜索一个是这个Peano曲线fromPILimportImagefromtqdmimporttqdmdefpeano(n):ifn==......
  • 多校A层冲刺NOIP2024模拟赛20
    多校A层冲刺NOIP2024模拟赛20\(T1\)A.星际联邦\(25pts\)部分分\(25pts\):暴力建边后跑\(Kruskal\)或\(Prim\)。点击查看代码structnode{ intfrom,to,w;};inta[300010];vector<node>e;structDSU{ intfa[300010]; voidinit(intn) { for(inti......
  • 笔趣阁纯净版V2024.10.13
    今天给大家推荐一款非常棒的免费小说阅读软件--笔趣阁纯净版版。不管你是想重温经典文学作品,还是想追读时下最火的小说,这款应用都能满足你的需求。对于小说和漫画爱好者来说,它是一个极佳的阅读工具,带你畅游在书籍的海洋中,享受阅读的乐趣。软件特色:1、界面设计非常简洁,没有......
  • 2024最新网络安全专业高薪岗位,网络安全入门到精通,收藏这篇就够了
    2024年,随着人工智能、云安全、供应链威胁、SecOps和产品安全威胁日益凸显,五类“顶流”安全职位(人才)有望加入CISO的“50万年薪俱乐部”。在传统网络安全职位薪酬体系中,处于金字塔顶端的是CISO、网络安全总监、信息安全经理、高级软件安全工程师、IT安全架构师等。根据企业规模......
  • 2024-2025-1-《计算机基础与程序设计》20241313刘鸣宇
    作业信息这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标 <写上具体方面>作业正文 ...本博客链接教材学习内容总结《计算机基础与科学概论》第八章......
  • 2024.11.9组队训练题解记录
    Teleportation鲍勃最近访问了一个奇怪的传送系统。该系统包含\(n\)个房间,编号为\(0\)到\(n-1\)。每个房间都安装了一个传送设备。每个传送设备都有一个看起来像钟表表面的仪表板,上面有一个指针,显示数字\(0\)到\(n-1\),按顺时针顺序排列。最初,第\(i\)个房间的传送设备上......
  • 大二上计组往年卷刷题之简单题部分 202411109
    2020年计组期末卷(非陈家骏班)1.请简述C++程序设计语言的设计理念、演化历程(包括主要的贡献者),并讨论Simula67在其中的作用。C++程序设计语言的设计理念C++的设计理念主要基于以下几个核心原则:高效地使用硬件:C++旨在保持与C语言的兼容性,使得C++代码与C代码运行时具有相似或更......