具体的队列算法实现代码。
将N个随机数入队。
实现出队、再次入队、打印队列等方法。
内存泄露是个大问题。
记得free(p);p=NULL
p指针本身是在栈上存储,不过p所指向的空间在堆上,所以需要程序员自行释放,防止内存泄露。
free(p);之后p指针仍然存在,如果堆上原来指向的内存没有被重写,p还是可以的输出的,以防p所指向的内存重写,p相当于野指针,需要p=NULL;
源代码如下:
#include<iostream>
#include<stdlib.h>
using namespace std;
#define OK 1
typedef int QElemType;
typedef int Status;
typedef struct QNode{
QElemType data;
struct QNode *next;
};//定义节点
typedef struct{
struct QNode * rear;//尾指针
struct QNode * front;//头指针
int Length;
}LinkQueue;//定义队列
Status InitQueue(LinkQueue &Q);//初始化队列
Status EnQueue(LinkQueue &Q,QElemType e);//入队在队尾插入元素e
Status ShowQueue(LinkQueue Q);//打印当前队列元素
Status GetTop(LinkQueue Q,QElemType &e);//获取当前队头元素,并用e返回
Status DeQueue(LinkQueue &Q);//出队
Status IsEmptyQueue(LinkQueue Q);/