tuskchen 发表于 2004-5-12 11:56

请教各位下面的java 小程序!

// Aquene class for characters.
class Quene{
private char q[];//this array holds the quene
private int publoc,getloc; //the put and get indices.

// Construct an empty Quene given its size.
Quene(int size){
q=new char;                      //?
putloc=getloc=0;
                     }

// Constructa Quene from a Quene.


Quene (Quene ob){
putloc=ob.putloc;
getloc=ob.getloc;
q=new char;
//copy elements
for(int i=getloc+1;i<=putloc;i++)            //?
q=ob.q;
                }
Quene (char a[]){
putloc=getloc=0;
q=new char ;
for(int i=0;i<a.length;a++)
put a;
                      }
// put a character into the quene.
void put(char ch){
if(putloc==getloc){
System.out.println("Quene is full");
return;
                           }
putloc++;
q=ch;
                        }
//get a character from the quene.
char get[]{
if(getloc==putloc){
System.out.println("Quene is empty.")
return (char)0;
                           }
getloc++;
return q;
               }


                        }

该程序想设计出一个先入先出的队列。这只是程序的一部分。但是我有的地方不太明白(打问号的行),请各位帮忙解释一下。

daxia108 发表于 2004-5-12 12:29

你如果学过数据结构就应该知道,通常数组的[0]位都是保留位,用作监视哨或者指针的原始位来用,后面正好对应数字存取位,这就是为什么要定义char[size+1]的原因。而后面的东东,你看一下取字符的methode就知道,get(读指针)是先向后移一位,才开始读操作的。

tuskchen 发表于 2004-5-12 13:18

多谢!,明白多了.
我是Java 的初学者,你说数组的位是保留位,那么为什么在java中,所有的数组都以0作为第一个元素的索引呢?

希望能得到你的指点!谢谢!

文选流氓 发表于 2004-5-12 13:20

呃,c/c++中的array的第一个index也是0啊。别的语言没学过,不知道这算不算是常规。

daxia108 发表于 2004-5-12 14:20

Array 当然百分百是数组的第一位,所有的语言都是如此。偶说的保留位,是特指在数据结构当中的数组应用,比如标准排序算法和各种队列应用当中,一般都把第一位空出来,或者不用,或者用作临时交换变量,而从 开始正常存储,所以叫 保留位,不要误解。

tuskchen 发表于 2004-5-12 15:07

现在是真正清楚了,danke!
页: [1]
查看完整版本: 请教各位下面的java 小程序!