数据结构—队列
1、队列的定义
队列(Queue)也是一种运算受限的线性表,它的运算限制与栈不同,是两头都有限制,插入只能在表的一端进行(只进不出),而删除只能在表的另一端进行(只出不进),允许插入的一端称为队尾(rear),允许删除的一端称为队头 (Front)
队列模型
2、队列的操作
队列的操作原则是先进先出的,所以队列又称作FIFO表(First...
分类:
其他好文 时间:
2014-08-11 02:58:31
阅读次数:
323
数据结构——表
1、定义:
线性表是一个线性结构,它是一个含有n≥0个结点的有限序列,对于其中的结点,有且仅有一个开始结点没有前驱但有一个后继结点,有且仅有一个终端结点没有后继但有一个前驱结点,其它的结点都有且仅有一个前驱和一个后继结点。
2、特征/性质
1)集合中必存在唯一的一个第一个元素
2)集合中必存在唯一的一个最后元素
3)除最后一个元素之外,均有唯一的后继
4)除第一个...
分类:
其他好文 时间:
2014-08-11 02:58:01
阅读次数:
279
顺序线性表:
#include
#include
#include
typedef int ElemType; //声明新类型名
typedef struct List
{
ElemType * elem;
int length;
int maxsize;
}Sqlist;
void Init_Sqlist(Sqlist &L) ...
分类:
其他好文 时间:
2014-08-10 13:10:30
阅读次数:
246
线性表:零个或多个数据元素的有限序列.
咋一看这句话,我也不明白是什么意思,哈哈,举例说明一下吧。去电影院买票时,人们的排队就是一个线性表,有固定的最前一个,固定的最后一个。
张三是其中一个,他的前一个人,和后一个人是确定的单一的。
再如,一个公司里的一个部里有一个领导,多名员工,他们的关系就不是线性表了,有一对多的关系。
那么在python里如何创建线性表呢?如下:
L...
分类:
编程语言 时间:
2014-08-09 15:56:08
阅读次数:
250
数据结构——栈
1、栈的定义
栈是一种特殊的线性表。其特殊性在于限定插入和删除数据元素的操作只能在线性表的一端进行。该位置是表的末端,叫做栈顶(top)
图像模拟
左边的栈的示意图 右边为用铁路调度站表示栈
2、栈的基本运算
构造空栈:InitStack(S)
判栈空: StackEmpty(S)
判栈满: StackFull(S)
进栈: Push(S,x) 可形象地理...
分类:
其他好文 时间:
2014-08-09 11:39:27
阅读次数:
470
队列,是一种先进先出的线性表,它只允许在队头删除,在队尾插入,链式队列和单链表操作类似,但是有队首指针和队尾指针,下面是链式队列的表示和实现:#include using namespace std;//队列的链式表现与实现struct QNode{ int data; QNode *n...
分类:
其他好文 时间:
2014-08-08 17:37:06
阅读次数:
257
先理解下凸包说凸包首先要说凸性的定义,简单点说就是平面邻域中任意两点所在的线段上的点都在该邻域中,则该邻域具有凸性。简单推敲一下,就可以发现如果邻域中存在一阶导数不连续的点一定无法被某点集线性表示出来。再往下的内容属于数学分析了,对我们的算法设计帮助不大,暂时先不管。一般的计算几何问题都是处理的离散...
分类:
其他好文 时间:
2014-08-08 15:32:16
阅读次数:
255
栈是限定尽在表尾进行插入或者删除操作的线性表,分为顺序栈和链式栈。 顺序栈: 利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设top指示栈顶元素在顺序栈中的位置,top永远指向栈顶元素的下一个元素位置,下面我们来看一下 顺序栈的基本操作和其应用: #include ...
分类:
其他好文 时间:
2014-08-07 22:53:35
阅读次数:
325
STL中的list容器的一点总结
1.关于list容器
list是一种序列式容器。list容器完成的功能实际上和数据结构中的双向链表是极其相似的,list中的数据元素是通过链表指针串连成逻辑意义上的线性表,也就是list也具有链表的主要优点,即:在链表的任一位置进行元素的插入、删除操作都是快速的。list的实现大概是这样的:list的每个节点有三个域:前驱元素指针域、数据域和后继元素指...
分类:
其他好文 时间:
2014-08-07 19:00:30
阅读次数:
250
题目链接:hdu 4923 Room and Moor
题目大意:给定一个序列a,元素由0,1组成,求一个序列b,元素在0~1之间,并且保证递增。输出最小的∑(ai?bi)2,
解题思路:首先剔除为首的0,和末尾的1,然后将中间部分成若干段由连续1开头,连续0结尾的各个段落。对于每一段有一个最优的值x=aa+b(a为1的个数,b为0的个数),用栈维护各个段的x值,如果当前x值小于前面一...
分类:
其他好文 时间:
2014-08-07 18:58:30
阅读次数:
277