队列的数据项都是队列尾插入,然后移向队列头,并从队列头删除或者获取。 队列需要一个头指针(front)和尾指针(rear),头指针会随着出队变动,rear会随着入队变动 两种常用队列 :线性队列,循环队列。 线性队列和循环队列的区别是:线性队列会产生假溢出,即头指针和尾指针都到了size大小 数组实 ...
分类:
编程语言 时间:
2017-11-26 22:59:14
阅读次数:
334
P1044 栈 P1044 栈 P1044 栈 题目背景 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表。 栈有两种最重要的操作,即pop(从栈顶弹出一个元素)和push(将一个元素进栈)。 栈的重要性不言自明,任何一门数据结构的课程都会介绍栈。宁宁同学在复习栈的基本 ...
分类:
其他好文 时间:
2017-11-24 21:35:58
阅读次数:
103
十字链表存储结构 定义顶点表结点结构: " " 其中,firstIn表示入边表头指针,指向该顶点的入边表中第一个结点,firstOut表示出边表头指针,指向该顶点的出边表中的第一个结点。 定义边表结点结构: " " 其中,tailvex是指弧起点在顶点表的下标,headvex是弧终点在顶点表的下标, ...
分类:
其他好文 时间:
2017-11-19 13:35:33
阅读次数:
138
原创文章,拒绝转载 主要的思想是使用三个标记指针:preNode、curNode、nextNode,每次将curNode的next设为preNode,然后如果此时nextNode为空,跳出循环,将链表头指针的next设为NULL,返回链表尾指针;否则,preNode = curNode,curNod ...
分类:
编程语言 时间:
2017-11-18 21:00:41
阅读次数:
193
全是入门的一些东西.基本全是从别处抄的. 栈 : 支持单端插入删除的线性容器. 也就是说,仅允许在其一端加入一个新元素或删除一个元素. 允许操作的一端也叫栈顶,不允许操作的一端也叫栈底. 数个箱子相叠就可以认为是一个栈,只能在最顶端加入一个新箱子或拿走一个箱子. 栈中的元素遵循 后进先出(last ...
分类:
其他好文 时间:
2017-11-18 20:57:11
阅读次数:
216
如何判断环的入口点:碰撞点p到连接点的距离=头指针到连接点的距离,因此,分别从碰撞点、头指针开始走,相遇的那个点就是连接点。 为什么呢?需要一个简单的计算过程:(1)当fast与slow相遇时,show肯定没有走完链表,而fast已经在还里走了n(n>= 1)圈。假设slow走了s步,那么fast走 ...
分类:
其他好文 时间:
2017-11-14 14:45:04
阅读次数:
136
定义: 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好,占用系统内存较少;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中 ...
分类:
其他好文 时间:
2017-11-14 11:37:53
阅读次数:
107
搜索 搜索是在一个项目集合中找到一个特定项目的算法过程。搜索通常的答案是真的或假的,因为该项目是否存在。 搜索的几种常见方法:顺序查找、二分法查找、二叉树查找、哈希查找 二分法查找 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半 ...
分类:
其他好文 时间:
2017-11-13 00:22:22
阅读次数:
128
List 有序,可以重复Set 无序,不能重复 Collection接口 | List接口:存储有序的可以重复的元素 | ArrayList(主要实现类) 用数组实现 | LinkedList(频繁的插入、删除操作) 用链表实现 | Vector(古老的,线程安全的,速度慢的) Set接口:存储有序 ...
分类:
编程语言 时间:
2017-11-06 21:21:49
阅读次数:
154
c++11 List 容器 List简介 list是一个双向链表容器 可高效地进行插入删除元素。 list不可以随机存取元素,所以不支持at(pos)函数与[]操作符。 #include <list> list对象的默认构造 list采用采用模板类实现 对象的默认构造形式: list<T> lstT ...
分类:
编程语言 时间:
2017-11-06 00:37:01
阅读次数:
202