黑马程序员技术交流社区
标题:
data structure 数据结构--queue
[打印本页]
作者:
James_01
时间:
2016-6-9 03:43
标题:
data structure 数据结构--queue
// data structure 数据结构
/*
数据结构一种组织数据的方法。
最简单的数据结构是数组。
数组是一个支持随机访问它的元素的线性list(list)。
*/
//queue支持两个基本操作:put和get
// put操作将一个新元素放在队尾;
// get取得队头的下一个元素,每个元素只能检索(取得)一次
class Queue {
char q[]; //容纳队列的数组
int putloc, getloc; // put and get 索引
// Queue构造方法:有参构造
Queue(int size) {
q = new char[size]; // 给队列分配内存
putloc = getloc = 0; //初始化索引为0
}
/**
put()方法,来存储元素(字符)
@param ch 接收一个char类型的字符
*/
void put(char ch) {
if(putloc == q.length) { //判断队列是否满了
System.out.println("--队列是满的。");
return;
}
q[putloc++] = ch;
}
/**
检索或取出元素,用get()方法。
*/
char get() {
if(getloc == putloc) { //此时队列为空
System.out.println("--队列是空的");
return (char) 0;
}
return q[getloc++];
}
}
// 测试the Queue class
class QDemo {
public static void main(String[] args) {
Queue bigQ = new Queue(100);
Queue smallQ = new Queue(4);
char ch;
int i;
System.out.println("用bigQ来储存字母表。");
for(i=0; i<26; i++) {
bigQ.put((char) ('A' + i));
}
System.out.print("bigQ 的内容: ");
for(i=0; i<26; i++) {
ch = bigQ.get();
if(ch != (char)0) {
System.out.print(ch);
}
}
System.out.println('\n');
System.out.println("用smallQ来形成错误信息。");
for(i=0; i<5; i++) {
System.out.print("企图存储:" + (char)('Z' - i));
smallQ.put((char) ('Z' - i));
System.out.println();
}
System.out.println();
System.out.print("smallQ的内容:");
for(i=0; i<5; i++) {
ch = smallQ.get();
if(ch != (char) 0) {
System.out.print(ch);
}
}
}
}
复制代码
/*output:
用bigQ来储存字母表。
bigQ 的内容: ABCDEFGHIJKLMNOPQRSTUVWXYZ
用smallQ来形成错误信息。
企图存储:Z
企图存储:Y
企图存储:X
企图存储:W
企图存储:V--队列是满的。
smallQ的内容:ZYXW--队列是空的
请按任意键继续. . .
*/
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2