第九周做业:图、图的几种算法和实现策略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)使用冒泡排序法或者选择排序法根据数值大小对链表进行排序
实践六:给出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:
实践一:
实践二:
实践三:
实践四:
实践五:
实践六:
实践七:
实践八:
实践九:
实践十:
实践十一:
实践十二:
实践十三:
实践十四:
实践十五:
实践十六:
实践十七:
实践十八:
实践十九:
实践二十:
实践二十一:
实践二十二:
实践二十三:
实践二十四: