2023-2024-1 学号20231315第七周学习总结
学期:2023-2024-1 学号:20231315《计算机基础与程序设计》第七周学习总结
作业信息
这个作业属于哪个课程 | 2023-2024-1 《计算机基础与程序设计》 |
---|---|
这个作业要求在哪里 | 2023-2024-1 《计算机基础与程序设计》 |
这个作业的目标 | 学习计算机科学概论第8章和《C语言程序设计》第6章 |
作业正文 | https://i.cnblogs.com/posts/edit;postId=17827346 |
教材学习内容总结
本周我自学了计算机科学概论第8章和《C语言程序设计》第6章的相关内容,并对两本教材进行了总结。
计算机科学概论第6章总结
计算机科学概论第8章;主要介绍了抽象数据类型与子程序,列表,栈,队列,树,图以及子程序的运行
《C语言程序设计》第6章总结
第6章主要介绍了循环结构,例如whlie,for,以及continue,break以及程序的调试等。
教材学习中遇到的问题
计算机科学概论第章
1什么是抽象数据类型?
属性明确地与特定实现分离的容器。
2.如何观察数据?
可以从,应用层,逻辑层,实现层三个角度观察数据。
3数据结构和容器又分别是什么?
数据结构一种抽象数据类型中的复合数据域的实现。
容器:存放和操作其他对象的对象。
4 栈和队列分别是什么?
栈:一种抽象复合结构,可以在第一个位置插入元素,也可以删除元素。
队列:一种抽象结构,从一段进入,从另一端出。
5列表的三个属性特征?
项目是同构的,项目是线性的,项目是变长的。
6.链式结构是什么?
一个将数据项和找到下一项位置的信息保存到统一容器的实现方法。
7树是什么?
一种分层体系结构
8二叉树,根,叶节点分别指什么?
二叉树:具有唯一起始节点的的抽象复合结构
根:树中唯一的开始节点
9图,顶点,边分别是什么?
图:有一组节点和一组把节点连接起来的边构成的数据结构。
定点:图中的节点
边:图中两节点连接的顶点对
10图算法举例
深度优先搜索,广度优先搜索,单源最短搜索等等
《C语言程序设计》第6章
-
while函数的应用及举例?
while循环的基本语法结构如下:
while (条件) {
// 在条件为真时执行的代码块
}以下是一个简单的示例,演示了如何使用while循环在C语言中打印1到5的数字:
#include <stdio.h>
int main() {
int num = 1;
while (num <= 5) {
printf("%d\n", num);
num++;
}
return 0;
}2do while.函数应用及举例?
以下是一个简单的示例,演示了 do-while 循环的用法
#include <stdio.h>
int main()
{ int count = 1;
do
{ printf("这是第 %d 次循环\n", count);
count++;
} while (count <= 5);
return 0; }
3.for循环函数应用及举例?
以下是一个简单的示例,演示了 for 循环的用法:
#include <stdio.h>
int main() {
int i;for (i = 1; i <= 5; i++) {
printf("这是第 %d 次循环\n", i);
}return 0;
}基于AI的学习
我:我学习了本周我自学了计算机科学概论第8章和《C语言程序设计》第6章的相关内容,并对两本教材进行了总结。,请以苏格拉底的方式对我提问
AI:你是如何理解计算机科学概论中第8章的内容以及《C语言程序设计》第6章的相关内容?你觉得这些知识对你未来的学习和职业发展有何影响呢?
我:计算机科学概论第8章;主要介绍了抽象数据类型与子程序,列表,栈,队列,树,图以及子程序的运行 《C语言程序设 第6章主要介绍了循环结构,例如whlie,for,以及continue,break以及程序的调试等。。
AI:你对抽象数据类型和子程序的理解如何帮助你更好地组织和管理程序中的数据?另外,在学习循环结构时,你是否体会到了它们在编写程序时的实际应用,并且掌握了如何使用 continue 和 break 语句来改变循环的执行流程呢?。
我:抽象数据类型属性明确地与特定实现分离的容器。 观察数据 可以从,应用层,逻辑层,实现层三个角度观察数据。 数据结构一种抽象数据类型中的复合数据域的实现。 容器:存放和操作其他对象的对象。 栈:一种抽象复合结构,可以在第一个位置插入元素,也可以删除元素
AI:很好,你对抽象数据类型、数据结构和容器有着清晰的认识。现在让我们深入探讨一下栈和队列。栈和队列分别在哪些场景中应用得较多?它们在程序设计中有何优势和局限性呢?
我:栈和队列是常见的数据结构,它们在程序设计中有着不同的应用场景和优势局限性。
首先让我们来看一下栈。栈是一种后进先出(LIFO)的数据结构,最后入栈的元素最先出栈。这种特性使得栈在许多场景中都非常有用。比如,在计算机系统中,函数的调用和返回通常使用栈来管理,每次函数调用时,相关的上下文信息(如参数、返回地址等)会被压入栈中,函数返回时再从栈中弹出这些信息。此外,栈还常用于表达式求值、浏览器历史记录等场景。
栈的优势在于其操作简单高效,只需要考虑栈顶元素即可进行插入、删除等操作,时间复杂度为O(1)。然而,栈的局限性在于其只能在一端进行操作,不支持随机访问,并且容量大小通常固定。
接下来我们来看一下队列。队列是一种先进先出(FIFO)的数据结构,最先入队的元素最先出队。队列在许多场景中也有着广泛的应用,比如作业调度、消息队列等。在这些场景中,先到达的任务或消息会被优先处理,而后到达的则需要等待。
队列的优势在于其能够很好地模拟现实生活中排队的情形,保证了公平性和顺序性。而队列的局限性在于插入和删除操作的时间复杂度较高,为O(1),并且在特定场景下可能需要双端队列等变种结构来满足需求。
总的来说,栈和队列在程序设计中应用广泛,它们各自在不同的场景中具有独特的优势,但也存在一些局限性。合理地选择和使用栈和队列可以提高程序的效率和可维护性
AI:你对栈和队列的描述非常准确。栈和队列作为常见的数据结构,在程序设计中具有重要的作用,并且在不同的应用场景中发挥着各自独特的优势。
对于栈来说,它的后进先出的特性使得在处理函数调用和返回、表达式求值以及浏览器历史记录等场景中非常有用。栈的操作简单高效,且时间复杂度为O(1),这使得其在实际应用中具有很好的性能表现。然而,栈的局限性在于只能在一端进行操作,不支持随机访问,并且容量大小通常固定,这些限制了其在某些情况下的应用。
而队列作为一种先进先出的数据结构,广泛应用于作业调度、消息队列等场景。队列的优势在于能够很好地模拟现实生活中排队的情形,保证了公平性和顺序性。然而,队列的插入和删除操作的时间复杂度较高,为O(1),在某些特定场景下可能需要使用双端队列等变种结构来满足需求。
因此,在程序设计中,合理选择和使用栈和队列可以提高程序的效率和可维护性。针对具体的应用场景和需求,选择合适的数据结构是非常重要的,这样才能更好地发挥数据结构的优势,提高程序的性能和适用性。
我:我还有很多知识不会。
AI:没问题,学习是一个持续的过程,而且计算机科学领域涉及的知识非常广泛深奥。如果你有任何疑问或者需要帮助,随时都可以向我提问。我会尽力帮助你解决问题,扩大你的知识面。同时,不断阅读和实践也是提升自己的重要途径。加油
学习进度条
代码行数(新增/累积 | 博客量(新增/累积) | 学习时间(新增/累积) | |
---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 |
第一周 | 200/200 | 2/2 | 20/20 |
第二周 | 300/500 | 2/4 | 18/38 |
第三周 | 200/250 | 4/4 | 20/25 |
第五周 | 300/300 | 3/3 | 20/20 |
以上是本周的学习进度条,我在代码行数、博客数量和学习时间上都有一定的增长,但仍需努力