20172323 2018-2019-1《程序设计与数据结构》课程总结

每周做业连接汇总

  • 第一周做业:软件质量与算法分析
  • 第二周做业:集合概述——栈、链式结构——栈
  • 第三周做业:队列以及实现队列的几种方式
  • 第四周做业:列表以及实现列表的几种方式
  • 第五周做业:排序与查找
  • 第六周做业:树、实现树的策略、树的遍历
  • 第七周做业:二叉查找树及实现二叉查找树的几种方式(AVL树、红黑树)
  • 第八周做业:优先队列与堆
  • 第九周做业:图、图的几种算法和实现策略php

  • 自认为写得最好一篇博客是?为何?
    自认为写得最好的一篇博客,应该是第七周这篇吧。读到这个问题时脑子里第一反应就是这篇,倒不仅仅由于写得多,若是拼字数的话,教材学习内容总结多抄一些教材上的知识点上去就行了,在写博客这方面字数的量变很难引发质变,抄一堆又臭又长的东西马虎了事,很难说对本身能有什么帮助。选这篇的缘由正是由于我在学习并进行总结写博客的时候真正领会到了一些东西,尤为是红黑树那一部分,好像是抽风了同样的就特别想把那一部分搞懂,一开始没有读懂书上的意思,结合其余资料也不能彻底理解,而后就在博客上留下一堆未完成的学习总结,每隔一天就拿出来顺着思路从新理解,天天都多理解透了一点,直到最后差很少理解彻底了,又结合书上的例子本身画图将红黑树的构造方法画了几回贴在博客上。好像在个人学习过程当中不多有这样钻牛角尖的狠劲,因此记忆犹新,自认为最好。html

  • 做业中阅读量最高的一篇博客是?谈谈经验
    若是没看错的话是第六周这一篇,很重要的一点就是早发博客!若是在做业发布的瞬间就将做业提交上去,别的同窗在看做业的时候就会看到你已提交,天然而然的就会点进去帮你刷阅读量了。固然这篇博客阅读量高我认为很重要的一个缘由就是其中关于printTree方法的理解吧,当时理解这个方法的人并很少,我也是在读了大佬的博客以后才有所顿悟,因而一边理解这个方法一边写下本身的理解,算是对这个方法有稍详细的解读,进而对别人也有帮助,因此阅读量高吧。正经的经验就是,把博客写好,天然而然会有人来看!node

实验报告连接汇总

团队项目报告连接汇总

代码托管连接

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

    其实Android Studio上团队编程还有修修改改几千行代码,两学期一万行的代码确定是达到了。git

  • 加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得
    记得以前有一次的实验给了一个博客连接,里面就提到说,参照别人的代码何尝不是一件好事。由于别人已经写出了一个优质代码,理解他是怎么实现的有时候比本身费一成天劲写一个不咋样的代码收获更多。这学期有不少项目都是这样,本身写的代码很容易陷入桎梏之中,不能跳出某个圈子,反而借鉴他人的代码,能提供不少新鲜的思路,更能给人启发,同时也提升了学习的效率。
  • 积极主动敲代码作到没?教材实践上有什么经验教训?
    基本上是完成了积极主动敲代码了,教材实践的经验教训就是要回归教材知识,但又同时不局限于教材,要学会借鉴别人的代码,但不是抄袭别人的代码web

课堂项目实践

  • 实践一:时间复杂度分析算法

    (1)for(i=1;i<=n;i++) 
          for(j=1;j<=i;j++) 
           for(k=1;k<=j;k++)  
    (2)void fun(int n) {
      int i=l;
      while(i<=n)
         i=i*10;
    }
    (3)int i, j,sum;
      i=0;
      j=0;
      sum = i+j;
    
    (4)void fun (int n){
      int i=0;
      while(i*i*i<=n)
         i++;
    }
  • 实践二:完成课本中ArrayStack类的实现,特别是完成peek、isEmpty、size和toString方法的实现,并完成四个方法的测试。数据库

    public T peek() throws EmptyCollectionException
     {
    
     }
     public boolean isEmpty()
     {
         // To be completed as a Programming Project
     }
    
     public int size()
     {
         // To be completed as a Programming Project
     }
    
     public String toString()
     {
         // To be completed as a Programming Project
     }
  • 实践三:写出链表中节点插入的操做代码(伪代码)编程

    public static void InsertNode(Student2 Head, Student2 node){
    
     }
  • 实践四:链表练习,要求实现下列功能数组

    • (1)经过键盘输入一些整数,创建一个链表
    • (2)实现节点插入、删除、输出操做
    • (3)使用冒泡排序法或者选择排序法根据数值大小对链表进行排序
  • 实践五:运行PP28,PP28页的程序
    • 根据我的学号输入后缀表达式并计算。(例如,学号172301,输入1 7 + 2 3 0 1 - + *)
  • 实践六:给出size、isEmpty和toString等方法的定义,以完成LinkedStack 类的实现。 数据结构

    • 1.可以运行
    • 2.须要测试各个方法
    • 3.把代码上传到码云,并将关键代码和运行结果截图加水印(学号)上传。
  • 实践七:代码检查P72-P73

    • 凯撒密码程序。
    • 把结果截图,加学号水印,上传到蓝墨云。
  • 实践八:使用循环队列输出杨辉三角

    • (1)用数组实现循环队列(要考虑扩容问题,不然不加分)
    • (2)输出杨辉三角
    • (3)代码运行结果添加学号水印,并上传;代码传到码云,附上码云连接。
  • 实践九:栈队列测试题

  • 实践十:运行PP6.8和PP6.11的程序,

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

    - 1.泛型
    - 2.实现Comparable接口中的方法
    - 3.链式存储结构
  • 实践十二:已知线性表具备元素{5,13,19,21,37,56,64,75,80,88,92} 若是使用折半查找法,ASL是多少?

  • 实践十三:画出存储形式和asl的计算

  • 实践十四:把本身的学号加21,例如学号为1,把22添加到序列后面,使用链地址法,解决冲突。编程实现,并测试。

    • 要求计算asl,输出冲突次数。
  • 实践十五:当D2等于2时,第2趟排序结果是?

  • 实践十六:计算题

    • 1.有1023个结点的彻底二叉树,其高度是多少?叶结点数是多少?
    • 2.高度为h的彻底二叉树至少有多少个结点?至多有多少个结点?
    • 3.已知一棵度为m的树中有n1个度为1的结点,n2个度为2的结点,…,nm个度为m的结点,问该树中有多少个叶结点?
  • 实践十七:参考下面叶子节点计算的伪代码,计算课本中背部疼痛诊断器中决策树的叶子节点个数?

    int CountLeaf ( BiTree T,  int &count )
     {     if ( T ) 
        {     if (  (!T->lchild) && (!T->rchild)  )
               count++;     // 对叶子结点计数
               CountLeaf( T->lchild, count);  
               CountLeaf( T->rchild, count); 
        }
     }
  • 实践十八:若已知中序和先序序列,计算二叉树结构

    • 例:已知一棵二叉树的先序序列和中序序列分别为ABDGHCEFI 和 GDHBAECIF,试肯定二叉树结构。
    • 根据课堂介绍的递归树深度计算算法,计算决策树的深度。
  • 实践十九:使用递归实现层次遍历背部疼痛决策树,并按照层次顺序输出每一个节点内容。

    • 非递归的层次遍历法算法以下:
    • 根结点入队;从队头取元素,并执行以下3个动做:
    • (1)访问该结点;
    • (2)若是该元素有左孩子,则左孩子入队;
    • (3)若是该元素有右孩子,则右孩子入队;
    • 重复执行上述过程,直至队列为空。此时,二叉树遍历结束。按照上述算法,编程实现层序遍历,按照层序的方法,遍历并依次输出每一个节点内容。(3分)
  • 实践二十:根据关键字序列:36,30,18,40,32,45,22,50,构造一颗小顶堆,并排序?画出构造堆过程(树+数组)

  • 实践二十一:根据关键字序列:36,30,18,40,32,45,22,50,利用数组构造一颗大顶堆,并排序。

    要求:
    • (1)输出构造好的大顶堆序列(层序)
    • (2)输出每轮排序的结果(数组的结果)
    • 把结果截图并加学号水印上传到蓝墨云,代码上传到码云。
  • 实践二十二:使用Dijkstra(迪杰斯特拉)算法计算单源(V1出发)最短路径。

    • (1)写出V1到各个顶点的最短路径
    • (2)要求写出最短路径计算过程(相似于图2)
  • 实践二十三:AOE练习

    • 一、求关键路径,v1和ve的值并写出具体步骤
    • 二、画出图一可能的拓扑序列
    • 三、画出图二所示无向图的邻接矩阵、邻接链表,并列出深度优先和广度优先遍历图所得的顶点序列。
    • 四、写出图三的邻接矩阵,并用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)撰写博客记录实验的设计和实现过程,并将源代码传到码云
  • 课堂实践对提升应用能力有帮助吗?
    有必定的帮助,主要是运用教材学到的知识去解决一些问题,既巩固了课上学到的知识,同时又拓展了一些课外的知识
  • 课堂实践上本身有什么经验教训?
    课堂实践的一点经验教训就是要认真读题,不少时候实践的丢分都是由于读题不够仔细,会错了意。
  • 课堂实践上对老师有什么教学建议?
    但愿老师更多的抓住同窗们的疑难问题进行讲解,同时也能够适当的讲解一下教材实践如何编写,也就是能评讲一下做业,提供一些比较优秀的解答

  • 课程收获与不足(不要抄上学期的,不然会扣分)
    这学期主要学习的是数据结构方面的知识,就这方面来讲确定是有极大的收获。最大的不足就是我居然一时说不出个人收获是什么,直知道学习了数据结构,具体的收获是什么,真还想不起来啥。最近的团队合做项目却是让我收获了不少关于安卓方面的知识,特别是关于界面设计的一些玩意儿。
  • 本身的收获(投入,效率,效果等)
    我自认为这学期比上学期更加投入,虽然没有像上学期那样老是熬夜写代码,可是对于日常的各类项目、做业包括博客都是很投入的在作、在学,但是效果彷佛也不是多么好,至少在成绩上并无很明显的提升,甚至还有些降低的趋势。同时学到的东西也老是容易忘记,效果也不算好,在须要用到知识的地方老是很难触类旁通,灵活运用到。

  • 本身须要改进的地方
    就是学以至用的方面作得很差,正如上一段回答说到的那些。敲代码也须要更加积极主动

  • 结对学习是否是真正贯彻了?写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议
    接受小组成员的帮助更多一点吧,毕竟成绩在小组几个中算是最差劲的了。好比博客的问题怎么写,编写代码时遇到的不少问题,以及日常测验的纠错,不少都是在与小组成员的讨论中获得的正确答案。没有给老师的参考建议。

问卷调查

  • 你平均每周投入到本课程有效学习时间有多少?
    十个小时左右
  • 每周的学习效率有提升吗?你是怎么衡量的?
    我以为每周的学习效率都在前一周的基础上有必定的提升,衡量的标准能够有不少,好比这一周的任务有没有按时或者提早完成,或者在一样一周的时间内有没有掌握更多的知识,弄明白了多少个难点等等
  • 蓝墨云班课的使用对你的学习有促进吗?有什么建议和意见吗?
    只能说帮助有限,由于学习资源我更偏向于在网上本身搜索,因此班课上的资源并不经常使用。可是测验之类在班课上进行仍是比较方便直观。建议就是与经过班课与老师和助教的交流不太方便,但愿能改进一下。
  • 你以为这门课老师应该继续作哪一件事情?
    继续作的事情就是团队编程项目,我以为这样能充分调动每一个同窗的积极性,而且很好运用、巩固课上学到的知识,同时也能使咱们主动学习课外的知识
  • 你以为这门课老师应该中止作哪一件事情?
    暂时没有想好有什么不太适合本课程的事情。

  • 最后总结的说一下两学期的学习的一些感觉,虽然具体的说不上来收获到底有哪些,但确实一年的学习让我有了一种十足的收获感,至少我能更真切的了解作中学、自主学习是怎样的一种学习方式。这些对之后其余计算机方面课程的学习也确定能起到不小的帮助。

连接的二维码

码云项目连接:

第一周博客:

第二周博客:

第三周博客:

第四周博客:

第五周博客:

第六周博客:

第七周博客:

第八周博客:

第九周博客:

...
实验一 :

实验二:

实验三:

课堂测试一:

课堂测试二:

课堂测试三:

课堂测试四:

第一周:

第二周:

奔跑吧DKY——团队Scrum冲刺阶段-Day 1-领航:

奔跑吧DKY——团队Scrum冲刺阶段-Day 2:

奔跑吧DKY——团队Scrum冲刺阶段-Day 3:

奔跑吧DKY——团队Scrum冲刺阶段-Day 4:

奔跑吧DKY——团队Scrum冲刺阶段-Day 5:

奔跑吧DKY——团队Scrum冲刺阶段-Day 6:

奔跑吧DKY——团队Scrum冲刺阶段-Day 7:

实践一:

实践二:

实践三:

实践四:

实践五:

实践六:

实践七:

实践八:

实践九:

实践十:

实践十一:

实践十二:

实践十三:

实践十四:

实践十五:

实践十六:

实践十七:

实践十八:

实践十九:

实践二十:

实践二十一:

实践二十二:

实践二十三:

实践二十四:

相关文章
相关标签/搜索