My road to c++
C++博客
首页
新随笔
联系
聚合
管理
随笔-13 评论-0 文章-2 trackbacks-0
队列的实现(数组结构) Alpha 1.0
1
/**/
/*
*
2
Queue
3
Version: 1.0
4
Member function as follow:
5
size()
6
front() // the head element
7
back() // the rear element
8
push(T) // inset an elm
9
pop() // delete the last elm
10
empty() // if it is an empty list
11
print()
12
13
Use C++ template
14
@author fleap
15
data: 2009/03/20
16
*
*/
17
18
//
arqueue.h
19
#ifndef ARQUEUE_H
20
#define
ARQUEUE_H
21
22
#include
<
iostream
>
23
#include
<
string
>
24
25
using
namespace
std;
26
27
template
<
typename T
>
28
class
arqueue
29
{
30
public
:
31
arqueue():head(
0
),rear(
0
)
{}
32
~
arqueue()
{ head
=
0
; rear
=
0
; }
33
bool
empty()
const
{
return
rear
==
0
; }
34
int
size()
const
{
return
rear
+
1
; }
35
T front()
const
{
return
elem[head]; }
36
T back()
const
{
return
elem[rear]; }
37
void
push(
const
T
&
);
38
void
pop();
39
void
print()
const
;
40
private
:
41
static
const
int
MaxSize
=
200
;
42
T elem[MaxSize];
43
int
head, rear;
44
}
;
45
46
#endif
47
48
49
//
the member function is not good ,but effect, i will modify in the next version
50
template
<
typename T
>
void
arqueue
<
T
>
::push(
const
T
&
one)
51
{
52
static
int
flag
=
1
;
53
if
(flag)
{ elem[
0
]
=
one; flag
=
0
; }
54
else
55
{
56
rear
++
;
57
elem[rear]
=
one;
58
}
59
}
60
61
template
<
typename T
>
void
arqueue
<
T
>
::pop()
62
{
63
rear
--
;
64
}
65
66
template
<
typename T
>
void
arqueue
<
T
>
::print()
const
67
{
68
//
assert(rear < MaxSize);
69
for
(
int
i
=
head; i
<=
rear; i
++
)
70
cout
<<
elem[i]
<<
"
"
;
71
cout
<<
endl;
72
}
73
//Test function
//
Test function
int
main()
{
arqueue
<
int
>
que;
cout
<<
"
----------------Display the queue program-----------------------
"
<<
endl;
cout
<<
"
\nInitial the queue,please input the number of element to push stack
"
<<
endl;
cout
<<
"
number =
"
;
int
number;
cin
>>
number;
cout
<<
"
Secondly input the number in the following\n
"
<<
endl;
int
temp;
for
(
int
i
=
0
; i
<
number; i
++
)
{
cin
>>
temp;
que.push(temp);
}
cout
<<
"
You Input As Follow
"
<<
endl;
que.print();
cout
<<
"
head:
"
<<
que.front()
<<
"
rear:
"
<<
que.back()
<<
endl;
cout
<<
"
Would you like to display the pop function
Yes or No
"
<<
endl;
string
answer;
cin
>>
answer;
if
( answer
==
"
yes
"
||
answer
==
"
YES
"
)
{
que.pop();
que.print();
cout
<<
"
head:
"
<<
que.front()
<<
"
rear:
"
<<
que.back()
<<
endl;
}
cout
<<
"
-----------------------------------------------------------------
"
<<
endl;
system(
"
pause
"
);
return
0
;
}
posted on 2009-03-20 02:18
亦夏
阅读(224)
评论(0)
编辑
收藏
引用
所属分类:
DataStruct
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
栈的实现(顺序结构)Alpha 2.0
二查查找树的实现(链式) Alpha1.0
队列的实现(链式结构) Alpha 1.0
队列的实现(数组结构) Alpha 1.0
栈的实现(链式结构)Alpha 1.0
栈的实现(顺序结构)Alpha 1.0
循环链表的实现(Alpha)
双向链表的实现(Alpha1.0 )
单向链表的实现(Alpha 1.0)
线性表的顺序表示和实现(静态数组方式)(Alpha1.0)
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
<
2009年3月
>
日
一
二
三
四
五
六
22
23
24
25
26
27
28
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
31
1
2
3
4
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
(13)
ACM (2)
DataStruct(10)
TopCoder(1)
随笔档案
(13)
2009年5月 (1)
2009年4月 (3)
2009年3月 (5)
2009年2月 (4)
文章分类
(2)
ACM(1)
Alogrithm
C part of c++
C++0X
Datestruct
Game of c++
General(1)
Object-orient of c++
Others
Puzzle
STL
Template c++
Visual c++
文章档案
(2)
2009年2月 (1)
2009年1月 (1)
搜索
最新随笔
1. Search and DP
2. 栈的实现(顺序结构)Alpha 2.0
3. HowEasy
4. HDOJ_1010.Tempter of the Bone(DFS)
5. 二查查找树的实现(链式) Alpha1.0
6. 队列的实现(链式结构) Alpha 1.0
7. 队列的实现(数组结构) Alpha 1.0
8. 栈的实现(链式结构)Alpha 1.0
9. 栈的实现(顺序结构)Alpha 1.0
10. 循环链表的实现(Alpha)
最新评论
阅读排行榜
1. HDOJ_1010.Tempter of the Bone(DFS)(906)
2. 队列的实现(链式结构) Alpha 1.0(464)
3. HowEasy(435)
4. Search and DP(399)
5. 线性表的顺序表示和实现(静态数组方式)(Alpha1.0)(338)
评论排行榜
1. 线性表的顺序表示和实现(静态数组方式)(Alpha1.0)(0)
2. 单向链表的实现(Alpha 1.0)(0)
3. 双向链表的实现(Alpha1.0 )(0)
4. 循环链表的实现(Alpha)(0)
5. 栈的实现(顺序结构)Alpha 1.0(0)