- 时间复杂度分析:计算时间复杂度,用大O记法进行表示。
- ArrayStack类的实现和测试:实现ArrayStack类中的peek、isEmpty、size和toString方法,并完成四个方法的测试。
- 链表插入:写出链表中节点插入的伪代码。
- 链表实践:经过键盘输入一些整数,创建一个链表;实现节点插入、删除、输出操做;使用冒泡排序法或者选择排序法根据数值大小对链表进行排序。
- 第4章代码检查:运行PP28,PP28的程序,根据我的学号输入后缀表达式并计算。
- LinkedStack补全:实现size、isEmpty和toString等方法并进行测试。
- 第5章代码检查:运行课本P72-P73凯撒密码程序。
- 杨辉三角(选作题):使用循环队列输出杨辉三角。
栈队列测试题:完成第六题的分析。
html
- 第6章代码检查:运行PP6.8和PP6.11的程序。
- 线性表实践:定义一个商品类Product,须要包括商品名称、价格等信息,使用链式存储结构实现一个线性表,存储商店中的商品,同时支持插入、删除、选择排序、查找等功能,并进行简单测试。
- ASL测试:已知线性表具备元素{5,13,19,21,37,56,64,75,80,88,92},若是使用折半查找法,计算其ASL。
三种查找算法练习:画出三种算法的存储形式和并计算ASL。
java
- 哈希冲突处理实践:把本身的学号加21,例如学号为1,把22添加到序列{11,78,10,1,3,2,4,21}后面,使用链地址法,解决冲突,同时计算ASL,输出冲突次数。
希尔排序测试:当D2等于2时,写出第2趟排序结果。
git
- 树-计算题:计算下列三道题
- 1.有1023个结点的彻底二叉树,其高度是多少?叶结点数是多少?
- 2.高度为h的彻底二叉树至少有多少个结点?至多有多少个结点?
- 3.已知一棵度为m的树中有n1个度为1的结点,n2个度为2的结点,…,nm个度为m的结点,问该树中有多少个叶结点?
- 树的深度和叶子个数计算:参考下面叶子节点计算的伪代码,计算课本中背部疼痛诊断器中决策树的叶子节点个数,并根据课堂介绍的递归树深度计算算法,计算决策树的深度。
- 中序和先序计算二叉树结构:已知一棵二叉树的先序序列和中序序列分别为ABDGHCEFI 和 GDHBAECIF,试肯定二叉树结构。
- 层次遍历法实践:使用递归和非递归的方法实现层序遍历,遍历背部疼痛决策树,并按照层次顺序输出每一个节点内容。
- 堆构造与排序:根据关键字序列:36,30,18,40,32,45,22,50,构造一颗小顶堆排序,并画出构造堆过程(树+数组)
- 堆排序测试:根据关键字序列:36,30,18,40,32,45,22,50,利用数组构造一颗大顶堆,并排序。
十字链表练习:依照图画出十字链表结构。
web
最小生成树:依照图完成下列操做
算法
- 1.画出Prim算法的最小生成树的生成过程
- 2.画出Kruscal算法的最小生成树的生成过程
- 3.计算最小权值
Dijkstra(迪杰斯特拉)算法测试:使用Dijkstra(迪杰斯特拉)算法计算单源(V1出发)最短路径。要求:(1)写出V1到各个顶点的最短路径(2)要求写出最短路径计算过程。
编程
AOE练习(加分):完成下图中四道题。

后端
- 哈夫曼编码测试:设有字符集: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个英文字母的文件,统计每一个字符出现的几率,根据计算的几率构造一颗哈夫曼树,并完成对英文文件的编码和解码。
实验记录博客:172322 2018-2019-1 《程序设计与数据结构》哈夫曼编码测试报告数组
课堂实践对提升应用能力有帮助吗?数据结构
- 课堂实践的内容都是一些比较简单的编程时间或者代码检查,对于知识的理解有帮助,对于应用能力的提升也有必定的做用。
课堂实践上本身有什么经验教训?
- 上课必定要认真听讲,特别是书上没有的知识,不认真听课上实践作起来有一些困难。
课堂实践上对老师有什么教学建议?
- 相较于上学期的课上实践,本学期的课上实践更加合理了,但愿给学弟学妹们也以一样的方式教学。