数据结构笔记#队列

写得太偷懒,太低端。

以后的代码尽量用c++,等稍微学习下python那也是极好的。

queue.h

 1 #ifndef QUEUE_QUEUE_H
 2 #define QUEUE_QUEUE_H
 3
 4 #include <stddef.h>
 5
 6 typedef int DataType;
 7
 8 typedef struct _Node {
 9     DataType data;
10     struct _Node *next;
11
12     _Node(DataType d) {
13         data = d;
14         next = NULL;
15     }
16     _Node() {
17         data = 0;
18         next = NULL;
19     }
20 }NODE;
21
22
23 //With Head Node
24 class QUEUE {
25 public:
26     QUEUE();
27     ~QUEUE();
28
29     void Push(DataType);
30     //return 1 == OK
31     //return 0 == ERROR
32     int Pop(DataType*);
33
34 private:
35     NODE *head;
36     NODE *tail;
37 };
38
39
40 #endif //QUEUE_QUEUE_H

queue.cpp

 1 #include "queue.h"
 2
 3 QUEUE::QUEUE() {
 4     head = new NODE(0);
 5     tail = head;
 6 }
 7
 8 void QUEUE::Push(DataType data) {
 9     NODE *tmp = new NODE(data);
10     tail->next = tmp;
11     tail = tmp;
12     tmp = NULL;
13 }
14
15 int QUEUE::Pop(DataType *data) {
16     if (head->next != NULL) {
17         NODE *tmp = head->next;
18         *data = tmp->data;
19         head->next = tmp->next;
20         delete tmp;
21         tmp = NULL;
22         return 1;
23     } else {
24         return 0;
25     }
26 }
27
28 QUEUE::~QUEUE() {
29     NODE *tmp = head;
30     while (tmp != NULL) {
31         delete tmp;
32         head = head->next;
33         tmp = head;
34     }
35     tmp = NULL;
36     head = NULL;
37     tail = NULL;
38 }
时间: 2024-10-11 04:58:58

数据结构笔记#队列的相关文章

4、蛤蟆的数据结构笔记之四栈和队列定义

4.蛤蟆的数据结构笔记之四栈和队列定义 本篇名言:"人生应该如蜡烛一样,从顶燃到底,一直都是光明的." 今天学习栈和队列了.从第二篇学习时候我们知道,其实也是线性表的一种. 我们先来看下定义. 欢迎转载,转载请标明出处: 1.  栈 栈(stack)又名堆栈,它是一种运算受限的线性表.其限制是仅允许在表的一端进行插入和删除运算.这一端被称为栈顶,相对地,把另一端称为栈底.向一个栈插入新元素又称作进栈.入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素:从一个栈删除元素又称

42. 蛤蟆的数据结构笔记之四十二图的遍历之广度优先

42. 蛤蟆的数据结构笔记之四十二图的遍历之广度优先 本篇名言:"生活真象这杯浓酒 ,不经三番五次的提炼呵 , 就不会这样一来可口 ! -- 郭小川" 继续看下广度优先的遍历,上篇我们看了深度遍历是每次一个节点的链表是走到底的. 欢迎转载,转载请标明出处:http://write.blog.csdn.net/postedit/47029275 1.  原理 首先,从图的某个顶点v0出发,访问了v0之后,依次访问与v0相邻的未被访问的顶点,然后分别从这些顶点出发,广度优先遍历,直至所有的

C语言、数据结构笔记集合

链表中的“p->next” p->next到底是指p的下一个节点还是p的指针域呢?p是一个指针,那么p->next也应该是一个指针,即p->next应该是一个地址,因此p->next其实是p指向的节点的指针域(next域),所以p->next还是属于当前节点的,只不过它是下一个节点的地址罢了.所以如果函数返回“p->next”,那么函数的类型应为指针函数. 如何让VS2013进行C编程的时候使用基本库函数不会得到警告 把VS项目创建中的安全周期检查关闭就可以任意使

7、蛤蟆的数据结构笔记之七栈的应用之数制转换

7.蛤蟆的数据结构笔记之七栈的应用之数制转换 本篇名言:"人生意义的大小,不在乎外界的变迁,而在乎内心的经验." 上面两篇中我们实现了链栈和链队列,接下去哦我们看看实际中栈的应用场景.本次来看下栈在数制转换的作用. 欢迎转载,转载请标明出处: 1.  原理介绍 十进制N和其他进制数的转换时计算机实现计算的基本问题.简单算法如下: N=(N div d )x d + N modd 2.  实现 2.1         定义结构体 定义堆栈的结构体 typedef struct { int

2、蛤蟆的数据结构笔记之二线性表

2.蛤蟆的数据结构笔记之二线性表 到了笔记二了,每个笔记开头都应该弄个语句激励一下自己和小伙伴. "人生中最重要的不是位置,而是前进的方向" 这次咱们学习表,没错是表.什么表?额,汉字真是博大精深,没错,只是个表.不要想歪了. 欢迎转载,转载请标明出处: 1.  定义 线性表(亦作顺序表)是最基本.最简单.也是最常用的一种数据结构.线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的.线性表的逻辑结构简单,便于实现和操作.因此,线性表

5、蛤蟆的数据结构笔记之五链栈实现

5.蛤蟆的数据结构笔记之五链栈实现 本篇名言:"人生就像奕棋,一步失误,全盘皆输." 昨天对栈和队列进行了定义.这次我们来看下如何使用代码来实现链栈和链队列,后续蛤蟆会记录如何将栈应用到实际问题中. 栈一般是顺序结构,但是也可以采用链式存储结构,具体如下实现. 欢迎转载,转载请标明出处: 1.  定义结构体 #define MAX_STACKS10 typedef struct { intkey; /*otherfields */ }element; typedef struct st

48. 蛤蟆的数据结构笔记之四十八的有向无环图的应用关键路径

48. 蛤蟆的数据结构笔记之四十八的有向无环图的应用关键路径 本篇名言:"富贵不淫贫贱乐 ,男儿到此是豪雄.-- 程颢" 这次来看下有向无环图的另一个应用关键路径. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/47135061 1.  关键路径 与AOV-网相对应的是AOE-网(Activity On Edge)即边表示活动的网.AOE-网是一个带权的有向无环图,其中,顶点表示事件(Event),弧表示活动,权表

49. 蛤蟆的数据结构笔记之四十九图的连通性问题

49. 蛤蟆的数据结构笔记之四十九图的连通性问题 本篇名言:"我们不得不饮食.睡眠.游惰.恋爱,也就是说,我们不得不接触生活中最甜蜜的事情:不过我们必须不屈服于这些事物 .....--约里奥?居里"     此篇就作为数据结构入门笔记的最后一篇吧. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/47135259 设图G=(V,E)是一个无向图,G的一个连通分支是一个最大的连通子图,即一个连通分支是不包含在任何更大的

46. 蛤蟆的数据结构笔记之四十六普里姆算法

46. 蛤蟆的数据结构笔记之四十六普里姆算法 本篇名言:"手莫伸 ,伸手必被捉.党与人民在监督 ,万目睽睽难逃脱.汝言惧捉手不伸 ,他道不伸能自觉 , 其实想伸不敢伸 ,人民咫尺手自缩.-- 陈毅" 连通图的生成树是一个极小的连通子图,它含有图中全部的顶点,但只有足以构成一棵树的n-1条边.所谓的最小成本,就是n个顶点,用n-1条边把一个连通图连接起来,并且使得权值的和最小.构造连通网的最小代价生成树,即最小生成树(Minimum Cost Spanning Tree). 找连通图的最