这个行列程序用哪种类型来定义最开始的变量呢
这个队列程序用哪种类型来定义最开始的变量呢?
用Item定义变量可以编译,运行时出错错误:

用Node定信变量时出现错误:

总之,不明白是用Item,Node,还是Queu来定义最开始的变量?
------解决方案--------------------

如上图:你代码的第49行,声明的add指针变量没有申请内存,就直接赋值了,肯定就会报你下面各种内存不能写入的问题啦!
改一下应该就好了:Node* add=new Node();
其它部分没细看,应该是这个问题导致的
#include "stdafx.h"
#include <iostream>
#include "stdlib.h"
#include "time.h"
using namespace std;
typedef int Item;
struct Node
{
Item item;
Node *next;
};
const int full = 5;
class Queue
{
private:
Node *front;
Node *rear;
int count;
public:
Queue()
{
front = NULL;
rear = NULL;
count = 0;
}
bool isfull()
{
return count == full;
}
bool isempty()
{
return count==0;
}
bool additem(Item &item)
{
if(isfull())
{
return false;
}
Node * add;
add->item = item;
add->next = NULL;
count++;
if(front == NULL)
{
front = add;
// rear = add;
}
else
{
rear->next = add;
// rear = add;
}
rear = add;
return true;
}
bool substractitem(Item &item)
{
if(isempty())
{
return false;
}
item = front->item;
count--;
Node *temp;
temp = front;
front = front->next;
delete temp;
if(count==0)
{
rear=NULL;
}
return true;
}
int get_count()
{
return count;
}
};
int main()
{
Item item; //在这一步上往往不知道怎样定义变量,这里出错了。
//不知是定义Item类型的还是Node类型 还是Queue类型?
cin>>item;
Queue queue;
queue.additem(item);
// Node one; //这几步用Node 类型定义变量会出错。
// cin>>one.item;
// Queue queue;
// queue.additem(one.item);
cout<<"There are "<<queue.get_count()<<" members in the queue.\n";
return 0;
}
用Item定义变量可以编译,运行时出错错误:
用Node定信变量时出现错误:
总之,不明白是用Item,Node,还是Queu来定义最开始的变量?
------解决方案--------------------
如上图:你代码的第49行,声明的add指针变量没有申请内存,就直接赋值了,肯定就会报你下面各种内存不能写入的问题啦!
改一下应该就好了:Node* add=new Node();
其它部分没细看,应该是这个问题导致的