返回信息流头文件:
#include<iostream>
using namespace std;
struct Node//定义结点1的模式
{
int data;
Node * next;
};
int n;
Node ** Front=new Node* [n];
Node ** Rear=new Node* [n];
class LinkQueue
{
public:
LinkQueue()
{
front=rear=new Node;
front->next=NULL;
}
void LocateFront(Node ** p)
{
*p=front;
}
void EnLink(Node ** p,int n)
{
rear->next=new Node;
rear=rear->next;
rear->next=NULL;
rear->data=n;
*p=rear;
}
void DeQueue(Node ** p)
{
Node * s=new Node;
s=(*p)->next;
if(!s)
throw"Underflow";
(*p)->next=s->next;
cout<<s->data<<" ";
delete s;
}
private:
Node * front;
Node * rear;
};
源文件:
#include <iostream>
using namespace std;
#include "basic.h"
#include "stdlib.h"
#include "time.h"
void main()
{
int N,i,n;
srand((unsigned)time(NULL));
cout<<"请输入列车节数:";
cin>>N;
int *a=new int[N];//动态分配数组
for(i=0;i<N;i++)
a[i]=i+1;
for(i=N-1;i>=0;i--)
{
int j=rand()%(i+1);
int t=a[j];
a[j]=a[i];
a[i]=t;
}
cout<<"车厢的初始顺序为:"<<endl;
for(i=0;i<N;i++)
cout<<a[i]<<" ";
cout<<endl;
cout<<"请输入缓冲轨数量:";
cin>>n;
Node *p=new Node;
p->data=0;
p->next=NULL;
Node ** Front=new Node*[n];
Node ** Rear=new Node*[n];
for(i=0;i<n;i++)
{
Rear[i]=p;
Front[i]=p;
}
LinkQueue * I=new LinkQueue[n];
for(i=0;i<n;i++)
I[i].LocateFront(&Front[i]);
if(N>1)
{
int sign=1;
for(i=0;i<N&&sign==1;i++)
{
int s=0,stop=1;
for(int j=0;j<n&&stop==1;j++)
{
if(a[i]>(Rear[j]->data))
{
I[j].EnLink(&Rear[j],a[i]);
stop=0;
}
else
{
s++;
}
if(s==n)
{
cout<<"所提供的缓冲轨数量不够,无法将车厢顺序排列"<<endl;
sign=0;
}
}
}
}
else
cout<<"仅一节车厢,无需排序"<<endl;
for(i=0;i<n;i++)
{
while(Rear[i]->data!=0)
{
I[i].DeQueue(&Front[i]);
}
cout<<endl;
}
}
具体表现为最后在输出时,只能输出第一个缓冲轨的情况,开始输出第二个缓冲轨时就出错,跳出debug error的窗口。
本人实在无奈,求救与各位大神,望不吝赐教,鄙人不胜感激!!!
这是一条镜像帖。来源:北邮人论坛 / cpp / #46293同步于 2010/11/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
菜鸟求救!!Debug Error
RPGViewer
2010/11/16镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。