数据结构-队列-链表实现
程序员文章站
2022-07-14 12:13:40
...
代码实现
//队列 链表实现
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
//定义一个链表
typedef struct _Node Node;
struct _Node{
int num;
Node * next;
};
//定义一个队列
typedef struct _Queue Queue;
struct _Queue{
Node * Front;
Node * Rear;
};
//创建一个队列
Queue * creatQueue(){
Node * node=(Node *)malloc(sizeof(Node));
node->next=NULL;
Queue * queue=(Queue *)malloc(sizeof(Queue));
queue->Front=node;
queue->Rear=node;
return queue;
}
//判断是否为空
bool isEmpty(Queue * queue){
return (queue->Front==queue->Rear);
}
//入队
void addQueue(Queue * queue,int num){
//创建一个节点
Node * node=(Node *)malloc(sizeof(Node));
node->next=NULL;
node->num=num;
//链接这个节点
queue->Rear->next=node;
queue->Rear=node;
}
//出队
int Delete(Queue * queue){
if(isEmpty(queue)){
return NULL;
}
else{
Node * node=queue->Front->next;
int num=node->num;
queue->Front->next=node->next;
free(node);
return num;
}
}
int main(){
Queue * queue=creatQueue();
for(int i=0;i<10;i++){
addQueue(queue,i);
}
for(int i=0;i<10;i++){
printf("%d\t",Delete(queue));
}
}
上一篇: 数据结构——队列的链表实现
下一篇: springboot读取pom配置