"#include "stdio.h"\n#include "stdlib.h"\n#include "string.h"\n\n#define MAX_NAME_LENGTH 50\n\n// 队列节点结构体\ntypedef struct QueueNode {\n int data;\n struct QueueNode* next;\n} QueueNode;\n\n// 队列管理节点结构体\ntypedef struct QueueManagerNode {\n char name[MAX_NAME_LENGTH];\n int nodeCount;\n QueueNode* front;\n QueueNode* rear;\n} QueueManagerNode;\n\n// 初始化队列管理节点\nvoid initialize(QueueManagerNode* manager, const char* name) {\n strcpy(manager->name, name);\n manager->nodeCount = 0;\n manager->front = NULL;\n manager->rear = NULL;\n}\n\n// 向队列中添加元素\nvoid enqueue(QueueManagerNode* manager, int data) {\n QueueNode* newNode = (QueueNode*)malloc(sizeof(QueueNode));\n newNode->data = data;\n newNode->next = NULL;\n\n if (manager->front == NULL) {\n manager->front = newNode;\n manager->rear = newNode;\n } else {\n manager->rear->next = newNode;\n manager->rear = newNode;\n } \n\n manager->nodeCount++;\n}\n\n// 从队列中删除元素\nvoid dequeue(QueueManagerNode* manager) {\n if (manager->front == NULL) {\n printf("Queue is empty.\n");\n return;\n }\n\n QueueNode* temp = manager->front;\n manager->front = manager->front->next;\n free(temp);\n\n if (manager->front == NULL) {\n manager->rear = NULL;\n }\n\n manager->nodeCount--;\n}\n\n// 获取队列中的元素个数\nint getNodeCount(QueueManagerNode* manager) {\n return manager->nodeCount;\n}\n\n// 打印队列中的元素\nvoid printQueue(QueueManagerNode* manager) {\n QueueNode* current = manager->front;\n printf("%s: ", manager->name);\n while (current != NULL) {\n printf("%d ", current->data);\n current = current->next;\n }\n printf("\n");\n}\n\nint main() {\n QueueManagerNode manager;\n initialize(&manager, "Queue 1");\n\n enqueue(&manager, 10);\n enqueue(&manager, 20);\n enqueue(&manager, 30);\n printQueue(&manager);\n\n dequeue(&manager);\n printQueue(&manager);\n\n int count = getNodeCount(&manager);\n printf("Number of nodes in the queue: %d\n", count);\n\n return 0;\n}\n

C 语言队列管理节点模型设计 - 包含队列名称和节点数量

原文地址: https://www.cveoy.top/t/topic/quv7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录