学期(2023-2024-1) 学号(20231327) 《计算机基础与程序设计》第7周学习总结
作业信息
课程 | <班级的链接>(2023-2024-1-计算机基础与程序设计) |
---|---|
要求 | <作业要求的链接>(2023-2024-1计算机基础与程序设计第7周作业) |
目标 | <了解并使用循环结构> |
作业正文 | https://i.cnblogs.com/posts/edit |
教材学习内容总结
1.区分基于数组的实现和链式实现
数组实现: 数组是一种连续存储元素的数据结构,通过索引访问元素。数组的大小是固定的,插入和删除元素可能需要移动其他元素。
链式实现: 链表是由节点组成的数据结构,每个节点包含数据和指向下一个节点的指针。链表的大小可以动态变化,插入和删除元素不需要移动其他元素。
2.区分数组与列表
在一些编程语言中,“数组”通常是固定大小的,而“列表”通常是动态大小的。列表的大小可以动态增长或缩小,而数组的大小是静态的。
3.区分无序列表和有序列表
无序列表: 元素在列表中没有特定的顺序。查找元素时,需要逐个检查。
有序列表: 元素在列表中有一定的顺序,通常是按照升序或降序排列。这样可以利用二分查找等算法进行高效的搜索。
4.区分栈和队列行为
栈: 后进先出(LIFO)的数据结构。最后入栈的元素最先出栈。
队列: 先进先出(FIFO)的数据结构。最先入队的元素最先出队。
5.了解二叉树
二叉树是一种树状结构,每个节点最多有两个子节点,称为左子节点和右子节点。
二叉搜索树(BST)是一种特殊类型的二叉树,其中左子树上的节点的值小于根节点的值,右子树上的节点的值大于根节点的值。
6.图与树有不同
图和树是两种基本的非线性数据结构,它们的最本质的区别在于是否允许存在环。
教材学习中的问题和解决过程
1.不知道栈的概念,通过他人比喻得知
书堆比喻:
想象你在图书馆或书店里堆起的一堆书。你每次拿起或放下一本书都是在堆的顶部。这就好比栈的操作,最后放入的书最先被拿走。
浏览器历史比喻:
在浏览器中,每次你点击链接或者后退,都相当于在一个浏览历史的栈中进行操作。当前页面就像是栈的顶部,你可以一步步回到之前浏览的页面。
2.不了解二叉树和二叉检索树本质区别
排序规则:
二叉树: 没有特定的排序规则,每个节点的左右子树之间没有大小关系。
二叉搜索树: 左子树的值小于根节点,右子树的值大于根节点,因此整棵树具有排序性质。
搜索效率:
二叉树: 没有排序规则,搜索效率可能较低。
二叉搜索树: 具有排序性质,可以利用二分查找的思想,提高搜索效率。
应用:
二叉树: 通常用于表示任意树形结构,例如表达式树、文件系统等。
二叉搜索树: 用于快速搜索和排序,例如在数据库中建立索引。
总的来说,二叉搜索树是二叉树的一种特殊形式,具有排序性质,适用于需要高效搜索和排序的场景。
基于AI的学习
代码调试中的问题和解决过程
1.选择用循环结构时,要考虑清楚循环结束条件,例如辗转相除法求最大公约数,其循环结构循环结束的条件应该是当当余数为0.即进入循环的条件是余数不等于0,有时弄错会想不到是这里出问题。
2.循环结构语句的括号位置应该清楚,在循环外和循环内要严格辨别。
3.对于数学变量的数值定义要规范,如对Π的数值选择考虑小数点后取多少,在计算三角函数才能得到正确结果。