本课程将和大家一起领略数据结构的精巧设计并详细的演示队列结构的实现,课程以原理为基础,同时以C++编码做为效果实现。使大家可以由表及里,由浅入深的进入数据结构的美妙世界。
1 课程简介
数据结构
是指相互之间存在一种或多种特定关系的数据元素的集合。
课程特点
- 数据结构的原理
- 以 c++ 完整得编写各种数据结构
2 队列原理
先进先出(FIFO, first in first out)
2.1 普通队列
容易理解,容易实现,但每次移动需要移动每一项数据,变化成本大。
2.2 环型队列
长度固定,性能更好,但实现起来较复杂。
3 队列结构的面相对象设计
说明: 我们采用 c++ 来实现队列数据结构,和 c 语言面向过程的实现方式不同,c++ 采用类的方式实现队列封装型更好。
4 环型队列代码实现
- 出队是队头移动。
- 入队是队尾移动。
- 队尾下表实际上指向的是队列最后一个元素后面一个元素。
- 环型队列实际是用数组实现的,为了实现队列头尾的环型移动,采用取余运算。
1 | . |
MyQueue.h
1 | /* |
MyQueue.cpp
1 |
|
main.cpp
1 |
|
5 升华与应用
- 实际应用中,成员往往是比 int 复杂的自定义类型
- 定义队列等数据结构时建议应用类模版,适用范围会更大