📄 queue.h
字号:
/*
请修改这些队列函数,以适应循环链表
可考虑删去 front 或 rear
除此之外,还可以考虑函数的返回值是否恰当
*/
typedef struct Node *PNode;
struct Node // 结点结构
{
DataType info;
PNode link;
};
struct LinkQueue // 链接队列类型定义
{
PNode front; // 头指针
PNode rear; // 尾指针
};
typedef struct LinkQueue *PLinkQueue;
//创建一个空队列
PLinkQueue createEmptyQueue_link( )
{
PLinkQueue plqu;
plqu = (PLinkQueue )malloc(sizeof(struct LinkQueue));
if (plqu!=NULL)
{
plqu->front = NULL;
plqu->rear = NULL;
}
else
printf("Out of space!! \n");
return (plqu);
}
//判断链接表示队列是否为空队列
int isEmptyQueue_link( PLinkQueue plqu )
{
return (plqu->front == NULL);
}
//进队列
void enQueue_link( PLinkQueue plqu, DataType x)
{
PNode p;
p = (PNode )malloc( sizeof( struct Node ) );
if ( p == NULL )
printf("Out of space!");
else
{
p->info = x;
p->link = NULL;
if (plqu->front == NULL)
{
plqu->front = p;
plqu->rear = p;
}
else
{
plqu->rear->link = p;
plqu->rear = p;
}
}
}
//出队列
void deQueue_link( PLinkQueue plqu )
{
PNode p;
if( plqu->front == NULL )
printf( "Empty queue.\n " );
else
{
p = plqu->front;
plqu->front = plqu->front->link;
free(p);
}
}
// 在非空队列中求队头元素
DataType frontQueue_link( PLinkQueue plqu )
{
return (plqu->front->info);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -