顺序队、链队实验报告 总结 下载本文

第 6 页 共 17 页

十、链队列调试截图

第 7 页 共 17 页

十一、顺序队列源代码

//实现顺序队列的入队,出队,遍历操作 //采用字符型储存数据,指针型引用做形参 #include #include #define MaxSize 100 using namespace std; typedef char ElemType; typedef struct MyQuene { ElemType data[MaxSize]; int front; int rear; int count; int no; }SqQuene;

void Init(SqQuene *&q);//初始化

void Destory(SqQuene *&q);//销毁队列

bool InQuene(SqQuene *&q,ElemType d);//入队

bool OutQuene(SqQuene *&q,ElemType &d);//出队对首元素

void DispQuene(SqQuene *&q,ElemType d);//列取当前队列所有元素 void Search(SqQuene *q,ElemType d);//搜索元素 void Init(SqQuene *&q)//初始化队列 { q=(SqQuene *)malloc(sizeof(SqQuene)); q->front=q->rear=-1; q->count=-1; q->no=0; }

void Destory(SqQuene *&q)//销毁队列 { free(q); }

bool InQuene(SqQuene *&q,ElemType d)//入队元素 { if(q->rear==MaxSize-1) { cout<<\队满!\ return false; } q->rear++; q->data[q->rear]=d; return true;

第 8 页 共 17 页

}

bool OutQuene(SqQuene *&q,ElemType &d)//出队元素 { if(q->front==q->rear) return false; q->front++; d=q->data[q->front]; return true; }

void DispQuene(SqQuene *&q,ElemType d)//遍历队列元素 { cout<<\所有元素:\ for(int i=q->front+1;i<=q->rear;i++) { q->front++; d=q->data[q->front]; cout<<\ } cout<front=q->count; }

void main() { SqQuene *q; ElemType d; int n,choose; Init(q); for(;;) { cout<<\ <*********************>\ cout<<\ <* 1.入队元素 *>\ cout<<\ <* 2.出队元素 *>\ cout<<\ <* 3.遍历队列 *>\ cout<<\ <* 4.退出 *>\ cout<<\ <*********************>\ cout<<\请选择:\ cin>>choose; switch(choose) { case 1: do{ cout<<\输入您需要入队的个数(n<=\ cin>>n; q->no=q->no+n;

第 9 页 共 17 页