xingkongyun
星空陨的程序小站
C++博客
首页
新随笔
联系
聚合
管理
随笔 - 8 文章 - 26 trackbacks - 0
<
2024年11月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(4)
给我留言
查看公开留言
查看私人留言
随笔档案
2009年12月 (1)
2009年9月 (1)
2009年4月 (1)
2008年12月 (1)
2008年11月 (1)
2008年10月 (2)
2008年9月 (1)
文章分类
C++语言(6)
Directx(1)
STL(2)
VC++
Windows编程(4)
操作系统(4)
数据结构(10)
文章档案
2008年11月 (1)
2008年10月 (3)
2008年9月 (10)
2008年7月 (1)
2008年6月 (13)
相册
图示
C++语言
C++的罗浮宫
搜索
最新评论
1. re: 卸载远程线程中的DLL
水平很高,学习了。
--王小亮
2. re: 卸载远程线程中的DLL
评论内容较长,点击标题查看
--疑问
3. re: NASM 与 VC 混合编程的小结
收下了
--5545645
4. re: VC++内联汇编(MSDN相关内容完整翻译)
谢谢
--5545645
5. re: 安全密码框的设计
评论内容较长,点击标题查看
--徐胖子
阅读排行榜
1. VC++内联汇编(MSDN相关内容完整翻译)(9233)
2. 保护模式与实模式的切换(7993)
3. 安全密码框的设计(4937)
4. NASM 与 VC 混合编程的小结(3890)
5. SYSENTER指令相关(大段的转载-_-)(3598)
评论排行榜
1. 通过虚函数表访问私有虚函数(10)
2. 安全密码框的设计(8)
3. 保护模式与实模式的切换(4)
4. VC++内联汇编(MSDN相关内容完整翻译)(1)
5. NASM 与 VC 混合编程的小结(1)
循环队列实现
1
//
数据结构队列简单实现(循环队列)
2
#ifndef QUEUE_H
3
#define
QUEUE_H
4
5
template
<
class
T
>
6
class
Queue
7
{
8
public
:
9
Queue(
int
maxsize
=
50
);
10
virtual
~
Queue();
11
bool
IsFull()
{
return
(rear
+
1
)
%
MaxSize
==
front
?
true
:
false
;}
//
满?
12
bool
IsEmpty()
{
return
front
==
rear
?
true
:
false
;}
;
//
空?
13
Queue
<
T
>&
Push(
const
T
&
val);
//
向队尾插入元素
14
Queue
<
T
>&
Pop(T
&
e);
//
从堆头删除元素
15
int
Size()
{
return
_Size;}
;
//
返回队列元素个数
16
T
&
Front();
//
返回对头元素
17
T
&
Back();
//
返回队尾元素
18
19
private
:
20
T
*
data;
21
int
front,rear;
22
int
MaxSize;
23
int
_Size;
24
}
;
25
//
------------------------------------------------
26
template
<
class
T
>
27
Queue
<
T
>
::Queue(
int
maxsize)
28
{
29
data
=
new
T[maxsize
+
1
];
30
MaxSize
=
maxsize
+
1
;
31
front
=
rear
=
_Size
=
0
;
32
33
}
34
//
------------------------------------------------
35
template
<
class
T
>
36
Queue
<
T
>
::
~
Queue()
37
{
38
delete[] data;
39
}
40
//
------------------------------------------------
41
template
<
class
T
>
42
Queue
<
T
>&
Queue
<
T
>
::Push(
const
T
&
val)
43
{
44
if
(IsFull())
throw
exception(
"
队列已满
"
);
45
rear
=
(rear
+
1
)
%
MaxSize;
46
data[rear]
=
val;
47
_Size
++
;
48
return
*
this
;
49
}
50
//
------------------------------------------------
51
template
<
class
T
>
52
Queue
<
T
>&
Queue
<
T
>
::Pop(T
&
e)
53
{
54
if
(IsEmpty())
throw
exception(
"
队列已空
"
);
55
front
=
(front
+
1
)
%
MaxSize;
56
e
=
data[front];
57
_Size
--
;
58
return
*
this
;
59
}
60
//
------------------------------------------------
61
template
<
class
T
>
62
T
&
Queue
<
T
>
::Front()
63
{
64
if
(IsEmpty())
throw
exception(
"
队列已空
"
);
65
return
data[(front
+
1
)
%
MaxSize];
66
67
}
68
//
------------------------------------------------
69
template
<
class
T
>
70
T
&
Queue
<
T
>
::Back()
71
{
72
if
(IsEmpty())
throw
exception(
"
队列已空
"
);
73
return
data[rear];
74
75
}
76
#endif
posted on 2008-09-19 19:52
杨彬彬
阅读(990)
评论(0)
编辑
收藏
引用
所属分类:
数据结构
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
循环队列实现
数据结构栈简单实现(基于链表)
栈结构简单实现(基于数组)
单向带头结点循环链表实现
关于红黑树(r-b树)的相关资料
二叉搜索树实现
二叉树实现
最大高度优先左高树(HBLT)实现
最大堆实现
链表类---转载
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理