标题:救急啊。。求改错 我实在不知道怎么办了。。。
只看楼主
lay364385071
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-12-24
结帖率:100%
已结贴  问题点数:20 回复次数:6 
救急啊。。求改错 我实在不知道怎么办了。。。
#include<assert.h>
#include <iostream.h>
template <class T>                     
class SeqQueue                    //队列类定义
{ private:
        int rear, front;           //队尾与队头指针
        T *elements;               //队列存放数组
        int maxSize;
public:
     SeqQueue(int sz = 10);                        //构造函数
     ~SeqQueue() {  delete[ ] elements; }    //析构函数
     bool EnQueue(T x);                //新元素进队列
     bool DeQueue(T & x);                          //退出队头元素
     bool getFront(T& x) const ;                           //取队头元素值
     void makeEmpty() {  front = rear = 0; }        
     bool IsEmpty() const
     {   return (front == rear)?true:false;    }
     bool IsFull() const
     {   return ((rear+1) % maxSize == front )?true:false;   }
     int getSize() const
     {   return (rear-front+maxSize) % maxSize;    }   
};
template <class T>
SeqQueue<T>::SeqQueue(int sz)         //构造函数
{     front=rear=0;
       maxSize=sz;
       elements = new T[maxSize];        
       assert ( elements != NULL );
};
template <class T>
bool SeqQueue<T>::EnQueue(T x)
//若队列不满,则将元素x插入到该队列的队尾,否则出错处理
{   if (IsFull() == true) return false;  //队列慢则插入失败,返回
     elements[rear] = x;                    //按照队尾指针指示位置插入
     rear = (rear+1) % maxSize;     //队尾指针加1
     return true;            
};
template <class T>
bool SeqQueue<T>::DeQueue(T & x)
//若队列不空则函数退掉一个队头元素并返回true,否则返回false。
{   if (IsEmpty() == true) return false;   
     x = elements[front];                             //先取队头
     front = (front+1) % maxSize;             //再队头指针加1
     return true;
};
template <class T>
bool SeqQueue<T>::getFront(T& x) const
//若队列不空则函数返回该队列队头元素的值
{   if (IsEmpty() == true) return false;       //队列空
     x = elements[front];                      //返回队头元素
     return true;
};
void main ()
{ int n;
cout<<" 输入  "<<endl;   
    SeqQueue<int>q(n+2);                                    //队列初始化
     q.MakeEmpty ();     q.EnQueue (1);   q.EnQueue (1);
     int t,s = 0;
      for ( int i = 1; i <= n; i++ )          //逐行计算
      {    cout << endl;                    
           q.EnQueue (0);                    
           for ( int j = 1; j <= i+2; j++ )     //下一行
           {    q.DeQueue (t);      q.EnQueue ( s + t );      s = t;
                 if ( j != i+2 ) cout << s << ' ';   
            }
      }   
 }
搜索更多相关主题的帖子: 怎么办 elements private include public 
2012-12-24 16:47
lay364385071
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-12-24
得分:0 
在线等   新手。。。。
2012-12-24 16:48
lay364385071
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-12-24
得分:0 
Compiling...
3.cpp
G:\vc++作业\3\3.cpp(57) : error C2039: 'MakeEmpty' : is not a member of 'SeqQueue<int>'
执行 cl.exe 时出错.

3.obj - 1 error(s), 0 warning(s)
2012-12-24 16:48
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:20 
程序代码:
#include "stdafx.h"
#include <assert.h>
#include <iostream>
using namespace std;

template <class T>                     
class SeqQueue                    //队列类定义
{
private:
    int rear, front;           //队尾与队头指针
    T *elements;               //队列存放数组
    int maxSize;
public:
    SeqQueue(int sz = 10);                        //构造函数
    ~SeqQueue() {  delete[ ] elements; }    //析构函数
    bool EnQueue(T x);                //新元素进队列
    bool DeQueue(T & x);                          //退出队头元素
    bool getFront(T& x) const ;                           //取队头元素值
    void MakeEmpty() {  front = rear = 0; }       
    bool IsEmpty() const
    {   return (front == rear)?true:false;    }
    bool IsFull() const
    {   return ((rear+1) % maxSize == front )?true:false;   }
    int getSize() const
    {   return (rear-front+maxSize) % maxSize;    }   
};

template <class T>
SeqQueue<T>::SeqQueue(int sz)         //构造函数
{    
    front=rear=0;
    maxSize=sz;
    elements = new T[maxSize];       
    assert ( elements != NULL );
};

template <class T>
bool SeqQueue<T>::EnQueue(T x)
//若队列不满,则将元素x插入到该队列的队尾,否则出错处理
{  
    if (IsFull() == true) return false;  //队列慢则插入失败,返回
    elements[rear] = x;                    //按照队尾指针指示位置插入
    rear = (rear+1) % maxSize;     //队尾指针加1
    return true;           
};

template <class T>
bool SeqQueue<T>::DeQueue(T & x)
//若队列不空则函数退掉一个队头元素并返回true,否则返回false。
{ 
    if (IsEmpty() == true) return false;   
    x = elements[front];                             //先取队头
    front = (front+1) % maxSize;             //再队头指针加1
    return true;
};

template <class T>
bool SeqQueue<T>::getFront(T& x) const
//若队列不空则函数返回该队列队头元素的值
{  
    if (IsEmpty() == true) return false;       //队列空
    x = elements[front];                      //返回队头元素
    return true;
};

void main ()
{
    int n;
    cout<<" 输入  "<<endl;  
    SeqQueue<int>q(n+2);                                    //队列初始化
    q.MakeEmpty ();
    q.EnQueue (1); 
    q.EnQueue (1);
    int t,s = 0;
    for ( int i = 1; i <= n; i++ )          //逐行计算
    { 
        cout << endl;                   
        q.EnQueue (0);                   
        for ( int j = 1; j <= i+2; j++ )     //下一行
        { 
            q.DeQueue (t);      q.EnQueue ( s + t );      s = t;
            if ( j != i+2 ) cout << s << ' ';   
        }
    }   
}

大小写啊,姐姐

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2012-12-24 17:23
lay364385071
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-12-24
得分:0 
哪个  大小写啊???。。。写了一个下午了。。。眼睛都花了
2012-12-24 17:38
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:0 
     void makeEmpty() {  front = rear = 0; }
     q.MakeEmpty ();     q.EnQueue (1);   q.EnQueue (1);

话说你的编码风格真是奇葩

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2012-12-24 17:40
lay364385071
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-12-24
得分:0 
额。。。。ok了。。。谢谢啦。。。。
2012-12-24 17:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-393260-1-1.html




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

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