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

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

时间:2024-11-10 21:08:46浏览次数:1  
标签:链表 刘书含 20241406 2024 数组 操作 节点 指针

作业信息
作业课程 2024-2025-1-计算机基础与程序设计
作业要求 2024-2025-1计算机基础与程序设计第七周作业
作业目标 数组与链表,基于数组和基于链表实现数据结构,无序表与有序表,树,图,子程序与参数
作业正文 2024-2025-1 20241328 《计算机基础与程序设计》第七周学习总结
教材学习内容总结
一、数组与链表
(一)数组
1.概念
数组是一种线性数据结构,它用一组连续的内存空间来存储一组具有相同类型的数据。(根据首地址来找)这使得数组的“随机访问”相对高效,因为可以根据离首地址的偏移量直接存取相应位置上的数据。
2.操作特点
增删操作:数组的增删操作效率很低。因为为了保证连续性,在进行增删操作时需要做大量的数据搬移工作。例如在数组中间插入一个元素,需要将插入位置后面的元素集体向后移一位为新元素空出存储空间。
(二)链表
3.概念
链表与数组不同,它不使用连续的内存空间,而是通过“指针”将一组零散的内存块串联起来。链表由节点组成,常见的链表有单链表、双向链表和循环链表等。[1]
4.操作特点
(1)单向链表
结构:单向链表中的每个节点包含两部分,即数据部分和后继节点指针部分。节点的链接方向是单向的。
访问与操作:相对于数组来说,单链表的随机访问速度较慢,但是单链表删除/添加数据的效率很高。例如在单向链表中删除一个节点,只需要修改相关节点的指针指向即可。添加节点时,也是修改指针指向来完成操作。[1]
双向链表
结构:双向链表中的每个节点由三部分组成,即前驱节点指针、数据、后继节点指针。所以从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。
操作:双向链表的删除节点和插入节点跟单向链表基本一致,只是在删除和插入节点时要加上对前驱节点指针的修改。[1]
循环链表:是一种特殊的链表,它将链表的结尾节点的后继指针指向头节点。循环链表的添加与删除主要是要重点考虑结尾节点和头结点的前继节点指针和后继节点指针问题。
二、基于数组和基于链表实现数据结构

1.队列实现(示例)
可以通过数组对数据进行操作来实现队列功能。例如在队列末尾添加数据时,可以实例化一个新数组对象,其长度比原数组大一,然后将原数组数据复制到新数组中,并将新元素添加到新数组末尾。[2]

2.以链表实现队列
可以利用链表的特性,如添加和删除元素效率高的特点来构建队列。在链表头部进行删除操作(出队),在链表尾部进行添加操作(入队)较为方便。
三.向函数传递一维和二维数组

  1. 向函数传递一维数组
    基本方法:在C语言中,传递一维数组时只传递数组的首地址,不传递整个数组。函数的参数可以用指针、固定大小数组或未定义大小的数组表示。这些方式在编译时被解释为指向数组首元素的指针
    2.向函数传递二维数组

    当传递二维数组时,函数形参需要包含第二维的大小;第一维可以省略
    使用指针:将二维数组作为指向一维数组的指针来处理。在这种情况下,参数可以被定义为指向一维数组的指针,同时在计算时需转化为对应的偏移量。这种方法利用了数组在内存中是行优先存储的特性,通过计算偏移量直接访问每个元素。

标签:链表,刘书含,20241406,2024,数组,操作,节点,指针
From: https://www.cnblogs.com/lsh-456654/p/18538496

相关文章

  • 2024-2025-1 20241408陈烨南《计算机基础与程序设计》第七周学习总结
    这个作业属于哪个课程2024-2025-1-计算机基础与程序设计)这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK07这个作业的目标数组与链表、基于数组和基于链表实现数据结构、无序表与有序表、树、图、子程序与参数作业正文本博客链接教......
  • NOIP2024(欢乐)加赛3
    NOIP2024(欢乐)加赛3\(T1\)CF2033BSakurakoandWater\(100pts\)枚举主对角线取\(\max\)即可。点击查看代码lla[510][510];intmain(){ llt,n,ans=0,maxx,i,j,k,h; cin>>t; for(h=1;h<=t;h++) { cin>>n; ans=0; for(i=1;i<=n;i++) { for(......
  • 20222402 2024-2025-1《网络与系统攻防技术》实验四实验报告
    一、实验内容本周学习内容计算机病毒(Virus):通过感染文件(可执行文件、数据文件、电子邮件等)或磁盘引导扇区进行传播,一般需要宿主程序被执行或人为交互才能运行蠕虫(Worm):一般为不需要宿主的单独文件,通过网络传播,自动复制通常无需人为交互便可感染传播恶意移动代码(Malicio......
  • 20222409 2024-2025-1 《网络与系统攻防技术》实验四实验报告
    1.实验内容1.1本周学习内容本周学习了恶意代码分析的基本方法,静态分析和动态分析的核心概念。静态分析主要通过代码结构和API调用等特征来识别恶意行为,动态分析则使用沙箱等环境运行代码,观察其行为。通过实验学习了IDAPro和ProcessMonitor等工具的基本操作。1.2实践内容......
  • 20222319 2024-2025-1 《网络与系统攻防技术》实验四实验报告
    1.实验要求1.1实验内容一、恶意代码文件类型标识、脱壳与字符串提取对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;(2)使用超级巡警脱壳......
  • 2024-2025-1 20241328 《计算机基础与程序设计》第七周学习总结
    2024-2025-120241328《计算机基础与程序设计》第七周学习总结作业信息作业课程2024-2025-1-计算机基础与程序设计作业要求2024-2025-1计算机基础与程序设计第七周作业作业目标数组与链表,基于数组和基于链表实现数据结构,无序表与有序表,树,图,子程序与参数作业正......
  • # 学期2024-2025-1 学号20241416《计算机基础与程序设计》第7周学习总结
    这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP/这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK07这个作业的目标 数组与链表、基于数组和基于链表实现数据结构、无序表作业正文 https://www.cnblogs.com/rockytyh/p/1......
  • 2024-2025-1 20241421 《计算机基础与程序设计》第七周学习总结
    作业信息这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 2024-2025-1计算机基础与程序设计第七周作业这个作业的目标 数组与链表、基于数组和基于链表实现数据结构、无序表与有序表、树、图、子程序与参数作业正文 https://www.cnblogs.com/118qa......
  • 20222321 2024-2025-1 《网络与系统攻防技术》实验四实验报告
    一、实验内容1、恶意代码文件类型标识、脱壳与字符串提取对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:=(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;(2)使用超级巡警脱壳机等脱壳软......
  • [赛记] 多校A层冲刺NOIP2024模拟赛20
    星际联邦80pts前连20条,后连20条80pts。。。考虑正解,发现向前连最大,向后连最小会出现重边,所以避免出现这种情况,我们只需要在做完向前连最大以后,在向后连最小的时候连不是同一个连通块的即可;时间复杂度:$\Theta(n\logn)$,瓶颈在排序;其实这个思想就是最小生成树的那个BUA算法......