这个作业属于哪个课程 | <班级的链接>(如2022-2023-1-计算机基础与程序设计) |
---|---|
这个作业要求在哪里 | <作业要求的链接>(如2022-2023-1计算机基础与程序设计第七周作业) |
这个作业的目标 | <数组与链表;基于数组和基于链表实现数据结构;无序表与有序表;树;图;子程序与参数> |
作业正文 | ... 本博客链接 |
学习目标
·数组与链表
·基于数组和基于链表实现数据结构
·无序表与有序表
·树
·图
·子程序与参数
学习资源
·教材
·阅读 「反作弊」:任何时候发现同学们有抄袭作业,抄袭代码的情况,即时课程总成绩清零
学习任务
·加入云班课,参考本周学习资源
自学教材
·计算机科学概论第8章 并完成云班课测试
·《C语言程序设计》第6章并完成云班课测试
问题一
二叉树的构建: 中序、先序与后序。
二叉树的详解与实现链接https://blog.csdn.net/hellowd123的博客(https://blog.csdn.net/hellowd123/article/details/99692395)
通过了解博客,我学习到:
前序遍历:root -> left -> right
中序遍历:left -> root -> right
后续遍历:left ->right -> root
层序遍历:按照层次遍历
由此,我又了解到二叉检索树的性质:
·若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
·若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;
·左、右子树也分别为二叉排序树。
而二叉树也是属于抽象数据类型的一种,是属性(数据和操作)明确地与待定实现分离的容器。
计算机科学概论第8章《抽象数据类型与子程序》总结
8.1抽象数据类型
应用层:特定问题中的数据的视图。
逻辑层:数据值和处理它们操作的视图。
实现层:明确表示了存放数据项的结构,并用程序设计语言对数据的操作进行了编码。
8.2栈stack
类型处理 LIFO“后进先出”
使用栈读取数字并反向打印出来
8.3队列queue
FIFO“先进先出”
读入数据值后按输入顺序输出
8.4列表
列表 项目是同构的、线性的,列表是变长的。
linear 线性
8.5树
分层体系结构
8.5.1二叉树
8.5.2二叉检索树
1.在二叉检索树中搜索
·若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
·若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;
·左、右子树也分别为二叉排序树。
2.构造二叉检索树
3.输出二叉检索树中的数据。
8.5.3其他操作
8.6图graph
8.6.1创建图
8.6.2图算法
1.深度优先搜索
2.广度优先搜索
3.单源最短路搜索
8.7子程序
8.7.1参数传递
8.7.2值参与应用参数
本周所写代码之一:
打印下三角的九九乘法表
#include<stdio.h> int main() { int i,j; for(i=1;i<=9;i++) { printf("%4d",i); } printf("\n-----------------------------\n"); for(i=1;i<=9;i++) { for(j=1;j<=i;j++) { printf("%4d",i*j); } printf("\n"); } return 0;
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 |
---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 |
第4周 | 150/790 | 2/5 | 19/60 |
第5周 | 170/1100 | 2/7 | 20/80 |
第6周 | 300/1450 | 3/10 | 20/100 |
第7周 | 250/1700 | 1/11 | 20/120 |