#2024-2025-1学号20241309《计算机基础与程序设计》第七周学习总结
作业信息
这个作业属于哪个课程 | 2024-2025-1-计算机基础与程序设计 |
---|---|
这个作业要求在哪里 | 2024-2025-1计算机基础与程序设计第七周作业 |
这个作业的目标 | |
作业正文 | 2024-2025-1学号20241309《计算机基础与程序设计》第七周学习总结 |
教材学习内容总结
《计算机科学概论》第八章:
抽象数据类型
- 概念:是对数据的一种抽象,它定义了数据类型的数据和操作,将数据的存储和操作细节封装起来,用户只需关心操作的功能和接口。
数组与链表
- 数组:是一种连续存储的数据结构,具有固定大小,元素在内存中连续排列。通过索引可以快速访问元素,但插入和删除操作可能比较复杂,因为需要移动大量元素(尤其是在数组中间插入或删除)。例如,若要在一个已排序的数组中插入一个新元素,可能需要将插入位置之后的所有元素向后移动一位。
- 链表:由一系列节点组成,每个节点包含数据和指向下一个节点的指针。链表的大小可以动态变化,插入和删除操作相对容易,只需修改相关节点的指针即可。但查找元素通常需要遍历链表,时间复杂度较高。
基于数组与链表实现数据结构
- 基于数组实现:可以用于实现栈、队列等数据结构。例如,栈可以用数组来实现,通过一个指针指向栈顶元素,入栈和出栈操作可以通过修改指针和相应的数组元素来完成。
- 基于链表实现:同样可用于实现栈、队列,而且在实现更复杂的数据结构如树、图时也有广泛应用。例如,二叉树可以用链表来表示,每个节点包含数据、左子节点指针和右子节点指针。
无序表与有序表
- 无序表:数据元素没有特定顺序,在实现上可以使用数组或链表。插入操作相对简单,只需将元素添加到合适位置(如链表末尾或数组的下一个可用位置)。查找和删除操作可能需要遍历整个列表。
- 有序表:数据元素按照特定的顺序(如升序或降序)排列。插入操作需要在合适的位置插入元素以保持顺序,可能涉及到元素的移动(数组情况)或指针修改(链表情况)。查找操作可以利用顺序性更快地找到目标元素(如二分查找法可用于有序数组)。
树
- 定义和结构:树是一种非线性的数据结构,由节点和边组成,有一个根节点,每个节点可以有零个或多个子节点。常见的树结构包括二叉树(每个节点最多有两个子节点)等。可以使用链表来实现树结构,每个节点包含数据和指向子节点的指针。
- 遍历方式:包括前序遍历、中序遍历、后序遍历等,这些遍历方法在算法实现和数据处理中有重要应用。
图
- 概念和组成:图是由顶点和边组成的更复杂的数据结构,边可以表示顶点之间的关系。图可以用于表示网络、地图等多种现实场景。图的存储方式有邻接矩阵(使用二维数组)和邻接表(基于链表)等,邻接表对于稀疏图更节省空间。
- 图的遍历:有深度优先搜索和广度优先搜索等算法,用于访问图中的顶点和边。
子程序与参数
- 子程序:是一个独立的程序模块,可以被其他程序调用。它提高了代码的复用性和可维护性。例如,在实现数据结构的操作时,可以将插入、删除等操作封装成子程序。
- 参数:是子程序与调用它的程序之间传递信息的方式。参数可以是值传递(将实际参数的值复制给形式参数)或引用传递(形式参数是实际参数的引用,对形式参数的修改会影响实际参数),正确使用参数可以实现更灵活的程序设计和数据处理。
《C语言程序设计》第六章:
循环的概念
循环是一种重要的程序控制结构,用于重复执行一段代码,直到满足特定条件为止。在C语言中,主要的循环结构有while循环、do - while循环和for循环。
while循环
- 语法结构: while(表达式) { 循环体语句; }。先判断表达式的值,若表达式的值为真(非0),则执行循环体中的语句,然后再次判断表达式的值,如此反复,直到表达式的值为假(0)时,结束循环。例如,通过 while(i < 10) 可以实现当变量 i 小于10时不断执行循环体内的操作。
- 注意事项:要确保循环条件最终能够变为假,否则会造成死循环。循环体中可能需要修改循环控制变量,以促使循环结束。
do - while循环
- 语法结构: do { 循环体语句; } while(表达式); 。先执行一次循环体语句,然后再判断表达式的值,若表达式的值为真(非0),则继续执行循环体,直到表达式的值为假(0)为止。与while循环的区别在于,do - while循环至少会执行一次循环体。例如,用于需要先执行一次操作再根据条件判断是否继续的场景。
- 使用场景:适用于那些不管条件是否满足,都需要先执行一次的循环操作。
for循环
- 语法结构: for(表达式1; 表达式2; 表达式3) { 循环体语句; }。其中表达式1通常用于初始化循环控制变量,表达式2是循环条件判断,表达式3用于修改循环控制变量。例如 for(int i = 0; i < 10; i++) ,初始化 i 为0,当 i 小于10时执行循环体,每次循环 i 自增1。
- 优势和特点:for循环结构紧凑、清晰,将初始化、条件判断和变量更新集中在一起,方便控制循环流程,在已知循环次数的情况下使用尤为便捷。
循环嵌套
- 一个循环体内可以包含另一个完整的循环结构,形成多层嵌套。例如,在二维数组的遍历中,可以使用双层for循环,外层循环控制行,内层循环控制列。
- 注意内层循环和外层循环的控制变量要相互独立,避免相互干扰,并且要正确设置每层循环的条件和终止条件。
几种循环的比较与选择
- while循环和for循环都是先判断条件再执行循环体,do - while循环是先执行一次再判断条件。
- 如果知道循环的次数,通常使用for循环;如果循环次数不确定,需要根据某个条件来判断是否继续循环,while循环和do - while循环更合适,具体使用do - while还是while取决于是否需要先执行一次循环体内容。
循环中的跳转语句
- break语句:用于跳出当前所在的循环结构,无论是while、do - while还是for循环。当满足某个特定条件时,使用break可以提前结束循环,例如在搜索某个元素时,找到后就可以使用break跳出循环。
- continue语句:用于跳过本次循环体中剩余的语句,直接进入下一次循环的条件判断。例如在循环中,对于某些不符合特定条件的情况,可以使用continue跳过后续操作,直接开始下一轮循环。
基于AI的学习