标签:错题 进度条 教材 测试 考试 链表实现 linked 不同 算法
本周学习了课本第五章的内容,主要介绍了一种新的线性集合——队列。讲解了关于队列的相关概念以及使用链表和数组实现队列的方法。
因为队列的后四种操作的实现都比较简单,和之前栈的相关类似操作比较类似。主要的不同体现在enqueue和dequeue上,因为栈只需在集合的一端操作,而队列需要在两端实现,所以接下来的内容主要在enqueue和dequeue两种方法上进行讨论。
public void enqueue(T element)
{
LinearNode<T> node = new LinearNode<T>(element);
if (isEmpty()) {
head = node;
}
else {
tail.setNext(node);
}
tail = node;
count++;
}
public T dequeue() throws EmptyCollectionException
{
if (isEmpty()) {
throw new EmptyCollectionException("queue");
}
T result = head.getElement();
head = head.getNext();
count--;
if (isEmpty()) {
tail = null;
}
return result;
}
public void enqueue(T element) {
if (size() == queue.length) {
expandCapacity();
}
queue[rear] = element;
rear = (rear + 1) % queue.length;//关键代码:用于正确更新rear的值
count++;
}
public T dequeue() throws EmptyCollectionException {
if (isEmpty()) {
throw new EmptyCollectionException("queue");
}
T result = queue[front];
queue[rear] = null;
front = (front + 1) % queue.length;
count--;
return result;
}
上周没有课堂测试。
问题:commit相比上学期写的不是很好。
没想到书上的代码也会有错,所以说敲代码的时候也不能不用脑子地机械敲击,这样很容易产生错误。
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 10/10 | 1/1 | 10/10 | |
第二周 | 246/366 | 2/3 | 20/30 | |
第三周 | 246/366 | 1/4 | 10/40 |
计划学习时间:10小时
实际学习时间:10小时
改进情况:感觉本周的东西相对比较容易,和上周也有许多类似,所以学起来没有上周那么困难了。
20172303 2018-2019-1 《程序设计与数据结构》第3周学习总结
标签:错题 进度条 教材 测试 考试 链表实现 linked 不同 算法
原文地址:https://www.cnblogs.com/PFrame/p/9710658.html