打字猴:1.700415372e+09
1700415372
1700415373
1700415374
1700415375
1700415376 为了实现队列这种数据结构,以下元素是必不可少的:(1)一个任意大小的数组;(2)一个用于存放排在队首的数据对应的索引的变量;(3)一个用于存放排在队尾的数据压的索引变量;(4)一对函数,分别用于把数据存入到队列和从队列中把数据取出来。如果数据一直存放在数组的末尾,那么下一个存储位置就会折回数组的开头。这样就相当于数组的末尾就和开头连接上了,于是虽然数组的物理结构是“直线”,但其逻辑结构已经变成了“圆环”(如代码清单6.7和图6.9所示)
1700415377
1700415378 代码清单6.7 使用一个数组、两个变量和两个函数实现队列
1700415379
1700415380 char Queue[100];                    /*作为队列本质的数组*/
1700415381
1700415382 char SetIndex=0;                    /*标识数据存储位置的索引*/
1700415383
1700415384 char GetIndex=0;                    /*标识数据读取位置的索引*/
1700415385
1700415386 /*存储数据的函数*/
1700415387
1700415388 void Set(char Data){
1700415389
1700415390   /*存入数据*/
1700415391
1700415392   Queue[SetIndex]=Data;
1700415393
1700415394   /*更新标识数据存储位置的索引*/
1700415395
1700415396   SetIndex++;
1700415397
1700415398   /*如果已到达数组的末尾则折回到开头*/
1700415399
1700415400   if (SetIndex>=100){
1700415401
1700415402 SetIndex=0;
1700415403
1700415404   }
1700415405
1700415406 }
1700415407
1700415408 /*读取数据的函数*/
1700415409
1700415410 char Get(){
1700415411
1700415412 char Data;
1700415413
1700415414 /*读出数据*/
1700415415
1700415416 Data=Queue[GetIndex];
1700415417
1700415418 /*更新标识数据读取位置的索引*/
1700415419
1700415420 GetIndex++;
1700415421
[ 上一页 ]  [ :1.700415372e+09 ]  [ 下一页 ]