zoukankan      html  css  js  c++  java
  • 20172318 2018-2019-1《程序设计与数据结构》课程总结

    (按顺序)每周作业链接汇总

    第一周:算法分析
    第二周:栈
    第三周:队列
    第四周:列表
    第五周:查找和排序
    第六周:树
    第七周:二叉查找树
    第八周:堆
    第九周:图

    自认为写得最好一篇博客是?为什么?

    第5周学习总结,写得很详细

    作业中阅读量最高的一篇博客是?谈谈经验

    第5周学习总结,写得好点就有人看吧

    (按顺序)实验报告链接汇总

    实验一 实验名称:线性结构实验报告
    实验二 实验名称:树实验报告
    实验三 实验名称:查找与排序

    (按顺序)团队项目报告链接汇总

    【Alpha版本】冲刺阶段——Day 1

    【Alpha版本】冲刺阶段——Day 2

    【Alpha版本】冲刺阶段——Day 3

    【Alpha版本】冲刺阶段——Day 4

    【Alpha版本】冲刺阶段——Day 5

    【Alpha版本】冲刺阶段——Day 6

    【Alpha版本】冲刺阶段——Day 7

    代码托管链接

    给出statistic.sh的运行结果,说明本学期的代码量目标达到没有?

    达到了16000,不过很多都是课本上的

    加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得

    很多pp项目的代码都是课本例子上就有的,只需在课本代码的基础上做些修改和延伸就能写完

    积极主动敲代码做到没?教材实践上有什么经验教训?

    已经很强了,经验就是先了解结构,再编写代码,效率会好很多

    课堂项目实践

    参考2018-2019-1 《Java 程序设计》课堂实践项目

    实践一 实验名称: 时间复杂度分析
    实践内容:
    •时间复杂度分析,用大O记法写出所给出各题的时间复杂度。

    实践二 实验名称: ArrayStack的实现和测试
    实践内容:
    •完成课本中ArrayStack类的实现,特别是完成peek、isEmpty、size和toString方法的实现,并完成四个方法的测试。

    实践三 实验名称: 链表插入
    实践内容:

    •写出链表中节点插入的操作代码:
    public static void InsertNode(Student2 Head, Student2 node){
    }

    •写出伪代码即可,需要逻辑正确。

    实践四 实验名称: 链表实践
    实践内容:
    •通过键盘输入一些整数,建立一个链表(1分);
    •实现节点插入、删除、输出操作(2分,3个知识点根据实际情况酌情扣分);
    •使用冒泡排序法或者选择排序法根据数值大小对链表进行排序(2分);

    实践五 实验名称: 第四章代码检查
    实践内容:
    •运行PP28,PP28页的程序,根据个人学号输入后缀表达式并计算。
    •例如,学号172301,输入1 7 + 2 3 0 1 - + *)
    •把运行结果截图上传。

    实践六 实验名称:LinkedStack补全
    实践内容:
    •给出size、isEmpty和toString等方法的定义,以完成LinkedStack类的实现。
    •要求:1.能够运行
    2.需要测试各个方法
    3.把代码上传到码云,并将关键代码和运行结果截图加水印(学号)上传。

    实践七 实验名称: 第五章代码检查-凯撒密码
    实践内容:
    •代码检查P72-P73,凯撒密码程序。
    •运行代码并截图,添加学号水印,上传到码云。

    实践八 实验名称: 杨辉三角
    实践内容:
    •使用循环队列输出杨辉三角(本题目是选做题,总分1分,计入加分。)。
    +(1)用数组实现循环队列(要考虑扩容问题,否则不加分);
    +(2)输出杨辉三角;
    +(3)代码运行结果添加学号水印,并上传;代码传到码云,附上码云链接。

    实践九 实验名称: 栈队列测试
    实践内容:
    •完成第六题的分析

    实践十 实验名称: 第六章代码检查
    实践内容:
    •运行PP6.8和PP6.11的程序,把结果截图,加学号水印,上传到蓝墨云。

    实践十一 实验名称: 线性表实践
    实践内容:
    •定义一个商品类Product,需要包括商品名称、价格等信息,使用链式存储结构实现一个线性表,存储商店中的商品。
    •支持插入、删除、选择排序、查找等功能,并进行简单测试。
    •需要使用的知识点:
    1.泛型
    2.实现Comparable接口中的方法
    3.链式存储结构

    实践十二 实验名称: ASL测试
    实践内容:
    •已知线性表具有元素{5,13,19,21,37,56,64,75,80,88,92},如果使用折半查找法,ASL是多少?

    实践十三 实验名称: 三种查找算法练习
    实践内容:
    •每种算法2分,包括画出存储形式和asl的计算。

    实践十四 实验名称:哈希冲突处理实践
    实践内容:
    •把自己的学号加21,例如学号为1,把22添加到序列后面,使用链地址法,解决冲突。
    •编程实现,并测试。
    •要求计算asl,输出冲突次数。

    实践十五 实验名称: 希尔排序测试
    实践内容:
    •D2等于2时,第2趟排序结果是?

    实践十六 实验名称: 树计算题
    实践内容:
    •1.有1023个结点的完全二叉树,其高度是多少?叶结点数是多少?(2分)
    •2.高度为h的完全二叉树至少有多少个结点?至多有多少个结点?(2分)
    •3.已知一棵度为m的树中有n1个度为1的结点,n2个度为2的结点,…,nm个度为m的结点,问该树中有多少个叶结点?(2分)

    实践十七 实验名称: 树的深度和叶子个数计算
    实践内容:
    •(1)参考下面叶子节点计算的伪代码,计算课本中背部疼痛诊断器中决策树的叶子节点个数?
    int CountLeaf ( BiTree T, int &count )
    { if ( T )
    { if ( (!T->lchild) && (!T->rchild) )
    count++; // 对叶子结点计数
    CountLeaf( T->lchild, count);
    CountLeaf( T->rchild, count);
    }
    }
    •(2)根据课堂介绍的递归树深度计算算法,计算决策树的深度。

    实践十八 实验名称: 中序和先序计算二叉树结构
    实践内容:
    •若已知中序和先序序列,计算二叉树结构
    •例:已知一棵二叉树的先序序列和中序序列分别为ABDGHCEFI 和 GDHBAECIF,试确定二叉树结构。

    实践十九 实验名称: 层次遍历法实践
    实践内容:
    •(1)使用递归实现层次遍历背部疼痛决策树,并按照层次顺序输出每个节点内容。(2分)
    •(2)非递归的层次遍历法算法如下:
    根结点入队;
    •从队头取元素, 并执行如下3个动作:
    (1)访问该结点;
    (2)如果该元素有左孩子,则左孩子入队;
    (3)如果该元素有右孩子,则右孩子入队;
    •重复执行上述过程,直至队列为空。 此时,二叉树遍历结束。
    •按照上述算法,编程实现层序遍历,按照层序的方法,遍历并依次输出每个节点内容。(3分)

    实践二十 实验名称: 堆构造与排序
    实践内容:
    •根据关键字序列:36,30,18,40,32,45,22,50,构造一颗小顶堆,并排序?
    •画出构造堆过程(树+数组)

    实践二十一 实验名称: 堆排序测试
    实践内容:
    •根据关键字序列:36,30,18,40,32,45,22,50,利用数组构造一颗大顶堆,并排序。
    要求:
    (1)输出构造好的大顶堆序列(层序);
    (2)输出每轮排序的结果(数组的结果);
    •把结果截图并加学号水印上传到蓝墨云,代码上传到码云。

    实践二十二 实验名称: 十字链表练习
    实践内容:
    •画出十字链表结构

    实践二十三 实验名称: 最小生成树
    实践内容:
    •1.画出Prim算法的最小生成树的生成过程
    •2.画出Kruscal算法的最小生成树的生成过程
    •3.计算最小权值

    实践二十四 实验名称: Dijkstra(迪杰斯特拉)算法测试
    实践内容:
    •任务详情
    使用Dijkstra(迪杰斯特拉)算法计算单源(V1出发)最短路径。
    图2是课堂介绍的示例。
    要求
    (1)写出V1到各个顶点的最短路径
    (2)要求写出最短路径计算过程


    实践二十五 实验名称: AOE练习
    实践内容:
    •1、求关键路径,v1和ve的值并写出具体步骤
    •2、画出图一可能的拓扑序列
    •3、画出图二所示无向图的邻接矩阵、邻接链表,并列出深度优先和广度优先遍历图所得的顶点序列。
    •4、写出图三的邻接矩阵,并用prim算法求最小生成树,画出产生过程


    实践二十六 实验名称: 哈夫曼编码测试
    实践内容:
    •设有字符集:S={a,b,c,d,e,f,g,h,i,j,k,l,m,n.o.p.q,r,s,t,u,v,w,x,y,z}。
    •给定一个包含26个英文字母的文件,统计每个字符出现的概率,根据计算的概率构造一颗哈夫曼树。
    •并完成对英文文件的编码和解码。
    要求:
    (1)准备一个包含26个英文字母的英文文件(可以不包含标点符号等),统计各个字符的概率
    (2)构造哈夫曼树
    (3)对英文文件进行编码,输出一个编码后的文件
    (4)对编码文件进行解码,输出一个解码后的文件
    (5)撰写博客记录实验的设计和实现过程,并将源代码传到码云
    (6)把实验结果截图上传到云班课
    .

    课堂实践对提高应用能力有帮助吗?

    实践很多是书上没有的内容,对于提高我们自我学习和应用能力都有帮助

    课堂实践上自己有什么经验教训?

    有时候听不懂老师的课,可以提前预习,这样理解起来也很快

    课堂实践上对老师有什么教学建议?

    建议当场完成,不要有补博客就能加分的措施

    课程收获与不足(不要抄上学期的,否则会扣分)

    • 自己的收获(投入,效率,效果等)
      学会了很多数据结构的知识,对一些复杂代码的理解有很大帮助,为之后的学习打下了良好的基础
    • 自己需要改进的地方
      提交时间应该早一点

    结对学习是不是真正贯彻了?写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议

    已经很好了,建议之后不要再有冲刺的博客,没什么用

    问卷调查

    • 你平均每周投入到本课程有效学习时间有多少?
      大概20个小时
    • 每周的学习效率有提高吗?你是怎么衡量的?
      有吧,之前一个学期只写了5000多行代码,这个学期代码量达到16000,每周的代码量都有显著提升
    • 蓝墨云班课的使用对你的学习有促进吗?有什么建议和意见吗?
      很有促进,建议严格要求同学们每人都将蓝墨云上的资源看一遍
    • 你觉得这门课老师应该继续做哪一件事情?
      继续加强对博客质量的要求
    • 你觉得这门课老师应该停止做哪一件事情?
      停止讲课本上的东西,多延伸课外,多布置实践

    给出你的总结中涉及到的链接的二维码

  • 相关阅读:
    LeetCode#13罗马数字转整数
    LeetCode#7整数反转
    LeetCode#1两数之和
    LeetCode#26删除排序数组中的重复项
    LeecCode#1550存在连续三个奇数的数组
    LeetCode#228汇总区间
    LeetCode#1476子矩形查询
    LeetCode#1535找出数组游戏的赢家
    LeetCode#867转置矩阵
    Vue源码——摸着石头过河
  • 原文地址:https://www.cnblogs.com/m1sty/p/10202559.html
Copyright © 2011-2022 走看看