利用顺序结构解决队列问题,不知道哪里出错了,请指教
利用顺序结构解决队列问题,不知道哪里出错了,请指教我不懂就是如果我用for循环输出15个数字,不会出错。
但是我只输出一个数字,比如说4。那么则输出4 0 0 0 0.
而且出队列根本没用,这是为什么?
难道输出问题?
// 顺序队列.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
#define MaxSize 50
typedef struct
{
int data[MaxSize];
int front;int rear;
}Sqeuque;
void init(Sqeuque *&l)
{
l=new Sqeuque();
l->front=l->rear=-1;
}
bool Enter(Sqeuque *&l,int e)
{
if(l->rear==MaxSize-1)
return false;
else
l->rear++;
l->data[l->rear]=e;
return true;
}
bool Out(Sqeuque *&l,int &e)
{
if (l->front==l->rear)
return false;
else
l->front++;
e=l->data[l->front];
return true;
}
void display(Sqeuque *l)
{
int i;
for (i=0;i<=l->data[l->rear];i++)
cout<<l->data[i]<<"\t";
}
int _tmain(int argc, _TCHAR* argv[])
{
Sqeuque *l;
init(l);
//for(int i=0;i<15;i++)
Enter(l,4);
Enter(l,5);
display(l);
cout<<"元素出栈:"<<endl;
int x;
Out(l,x);
display(l);
system("pause");
return 0;
}