| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1323 人关注过本帖
标题:请问这串代码错在什么地方
只看楼主 加入收藏
komorebi0110
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:145
专家分:17
注 册:2019-11-23
结帖率:96.88%
收藏
 问题点数:0 回复次数:0 
请问这串代码错在什么地方
程序代码:
#include<iostream>
#include<stdio.h>
using namespace std;
enum  Error_code{underflow, overflow, success};
const int maxqueue =1000; //  small value for testing
typedef double Queue_entry;
class CirQueue {
public:
   CirQueue();
   bool empty() const;
   Error_code serve();
   Error_code append(const Queue_entry &item);
   Error_code retrieve(Queue_entry &item) const;
   bool full() const;
   int size() const;
   void clear();
   Error_code serve_and_retrieve(Queue_entry &item);
private:
   int count;
   int front, rear;
   Queue_entry entry[maxqueue];
};
CirQueue::CirQueue()
{
   count = 0;
   rear = maxqueue - 1;
   front = 0;
}

bool CirQueue::empty() const
{
   return count == 0;
}
Error_code CirQueue::append(const Queue_entry &item)
{
   if (count >= maxqueue) return overflow;
   count++;
   rear = ((rear + 1) == maxqueue) ? 0 : (rear + 1); //处理队尾的下标
   entry[rear] = item;
   return success;
}
Error_code CirQueue::serve()
{
   if (count <= 0) return underflow;
   count--;
   front = ((front + 1) == maxqueue) ? 0 : (front + 1);
   return success;
}
Error_code CirQueue::retrieve(Queue_entry &item) const
{
   if (count <= 0) return underflow;
   item = entry[front];
   return success;
}
int CirQueue::size() const

{
   return count;
}
bool CirQueue::full() const
{
  return(count==maxqueue);
}
void CirQueue::clear()
{
   count = 0;
   rear = maxqueue-1;
   front = 0;
}
Error_code CirQueue::serve_and_retrieve(Queue_entry &item)
{
      if (count <= 0) return underflow;
         item = entry[front];
         count--;
         front = ((front + 1) == maxqueue) ? 0 : (front + 1);
         return success;
}

int main()
{

   double item;
   CirQueue numbers;
   cin>>item;

     while(item!=-1){
        numbers.append(item);
        cin>>item;
     }
     while (!numbers.empty()) {
      numbers.serve_and_retrieve(item);
      cout << item << " ";
   }
   cout << endl;
   return 0;
}
//就是最基本的队列问题,除了主函数基本全是按照老师ppt写的,但是放在作业平台总有两个点过不去
//不知道是漏掉什么点了请帮忙看一下
下面是题目:
(环形队列)请用顺序存储实现环形的数据结构CirQueue。你所实现的环形队列应包括:出队、入队、访问队首、判断队列是否已满,判断队列是否为空等功能。利用你实现的CirQueue实现输入整数序列的顺序输出。
【输入】整数序列以-1结束,序列长度小于100
【输出】输入整数序列的顺序序列
例如:
【输入】3 9 8 2 5 -1
【输出】3 9 8 2 5

搜索更多相关主题的帖子: const item int return count 
2020-03-23 13:38
快速回复:请问这串代码错在什么地方
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024367 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved