之前的笔记搬运
栈和队列
0x1 栈结构
栈结构, 就是先入后出的一种数据结构;
可以在数组或链表的结构基础上加以修改和限制来达到构建栈结构的目的;
数组改栈: 适用于已知数据量大小,这时比链表的优势就是每次增加数据少个new内存的过程;
链表改栈: 适用于数据量大小未知, 因为链表不存在大小不足够,而去delete掉整个结构的情况;
0x2 队列
队列两头都有限制,插入只能在表的一端进行(只进不出),而删除只能在表的另一端进行(只出不进),允许删除的一端称为队尾(rear),允许插入的一端称为队头(Front)
当然, 还有其他一些特殊的队列结构, 可以存在插入的操作, 类似于VIP队列只适合链表结构, 因为每次删除的都是头部, 如果使用数组的话,每次都是线性阶的移动数据, 而使用链表的话就是常量阶;
0x3 迭代器
基本官方的数据结构都会有一个迭代器的类(iterator),该类下会有获取数据结构头部和尾部的一些成员函数, 和一些运算符重载,用于遍历结构的内的数据;