队列
什么是队列?
一种可以实现“先进先出”的存储结构。
出队 入队 -->>队列
出栈 压栈 -->>栈
链式队列 ---用链表实现的
静态队列 ---用数组实现的
静态队列通常必须是循环队列..
039.循环队列需要几个参数来确定极其含义的讲解
front代表的是队列的第一个元素
rear代表的是队列的最后一个有效元素的下一个元素
队...
分类:
其他好文 时间:
2014-08-24 16:45:52
阅读次数:
212
给定一个循环链表,实现一个算法返回这个环的开始结点。
定义:
循环链表:链表中一个结点的指针指向先前已经出现的结点,导致链表中出现环。
例子:
输入:A -> B -> C -> D -> E -> C [结点C在之前已经出现过]
输出:结点C
可以用一个map 就解决问题了。
下面是编程之美上一种奇特的解法:快慢指针解法。
代码:...
分类:
其他好文 时间:
2014-08-22 21:16:09
阅读次数:
296
一、栈ADT是what?1、定义 栈,是限制插入和删除都只能在一个位置上进行的表。2、图示 3、栈的基本功能(1)是否为空(2)进栈(3)出栈(4)清空(5)取栈顶二、栈的链表实现
分类:
其他好文 时间:
2014-08-17 16:43:42
阅读次数:
183
1 include 2 using namespace std; 3 #include 4 5 typedef int T; 6 7 class List{ 8 struct Node{ 9 T data1;10 ...
分类:
其他好文 时间:
2014-08-16 12:28:50
阅读次数:
200
数据结构与算法是语言学习中的重点与难点。之前没学好,现在特地将严蔚敏的《数据结构》C语言版中的伪代码,予以实现,算作是自己再学习一次。同时希望能帮助到那些刚接触数据结构,对书中内容还不甚理解不知如何动手实现的童鞋。本篇实现的是线性链表,实现算法2.12...
分类:
编程语言 时间:
2014-08-13 22:29:55
阅读次数:
467
二、队列 队列是一种先进先出的数据结构,元素只能添加到队尾,而对元素的删除,修改,检索只能在队头进行。与栈的差异是很明显的。同样队列的实现可以基于链表,也可以基于数组。和栈的基本操作差不多,但队列多了一个指针(标号)指向末尾的元素,因为需要在末尾插入元素。1.队列的链表实现#ifndef QUEU....
分类:
其他好文 时间:
2014-08-12 00:09:43
阅读次数:
231
1.树是一种数据结构,树的一些相关的术语:
结点的度:一个结点的后继结点的个数。
树的度:树中度值最大的结点的度被称为树的度。
树的深度:树的层次数。
分支结点:度值大于0的结点,分支结点至少含有一个后继,分支结点也称为非终端结点。
叶子结点:树中的度值为0的结点。
双亲结点:树中某个结点的前驱结点,也成为父节点。
子女结点:树中某结点的后继结点。
兄弟结点:树中同一层的结点。...
分类:
其他好文 时间:
2014-08-05 19:34:40
阅读次数:
262
1.队列的单向链表的实现方法
return只可以返回一个值,单向循环链表来实现队列的时候可以只保留一个指针,因为保留rear指针能够很方便的表示出front指针,所以保留rear指针。
另外由于链表的第一个结点处理比较特殊,所以在初始化的时候需要单独处理。链表实现的队列思想也是第一个单元作为头结点,不存放数据,rear指针指向的总是尾结点(在循环链表中也就是头结点的上一个结点)。
2.实现方...
分类:
其他好文 时间:
2014-08-04 21:47:48
阅读次数:
233
链表是Redis中使用非常广泛的一种数据结构,很多地方如List结构底层就是用链表实现的。链表的定义在头文件adlist.h 中,很常见的双向链表,结构如下: 1 // 链表节点 2 typedef struct listNode { 3 struct listNode *prev; //指...
分类:
其他好文 时间:
2014-08-03 01:45:04
阅读次数:
347