1个回答
展开全部
#include<stdio.h>
#include<stdlib.h>
struct Node {
int data; // 数据类型自己根据需要定义
Node *next;
};
struct Queue {
Node *head, *rear;
};
Queue* creatQueue() {
Queue *Q = new Queue;
Node *node = (Node*) malloc(sizeof(Node)); // 创建头节点
node->next = NULL;
Q->head = Q->rear = node;
return Q;
}
void enQueue(Queue *Q, int d) {
Node *node = (Node*) malloc(sizeof(Node));
node->data = d;
node->next = NULL;
Q->rear->next = node;
Q->rear = node;
}
int deQueue(Queue *Q) {
int data;
if (Q->head==Q->rear) {
printf("队列下溢!");
return 99999999; // 表示错误
}
Node *node = Q->head->next;
data = node->data;
Q->head->next = node->next;
if(node->next==NULL) {
Q->rear = Q->head;
}
free(node);
return data;
}
void printQueue(Queue *Q) {
Node *node = Q->head->next;
puts("Queue: ");
while(node!=NULL) {
printf("%d ", node->data);
node = node->next;
}
putchar('\n');
}
void destroyQueue(Queue *Q) { // 回收内存
Node *node;
while(Q->head) {
node = Q->head->next;
free(Q->head);
Q->head = node;
}
free(Q);
}
void main() {
int d, run = 1;
Queue *Q = creatQueue();
while(run) {
system("cls");
printQueue(Q);
puts("1、入队\n2、出队\n3、退出\n请输入操作号:");
scanf("%d", &d);
switch(d) {
case 1:
puts("请输入需要入队的数字:");
scanf("%d", &d);
enQueue(Q, d);
break;
case 2:
printf("%d 出队\n", deQueue(Q));
break;
case 3:
run = 0;
break;
default:
puts("输入错误!\n");
}
system("pause");
}
destroyQueue(Q);
}
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询