Implementation of chained Storage queue in C language
This article mainly introduces "the implementation method of chain storage queue in C language". In daily operation, I believe that many people have doubts about the implementation method of chain storage queue in C language. The editor consulted all kinds of materials and sorted out simple and easy-to-use operation methods. I hope it will be helpful for you to answer the doubts about "the implementation method of chain storage queue in C language". Next, please follow the editor to study!
# include # include using namespace std;typedef struct node {int data; struct node * next;} NODE;typedef struct queue {NODE* head; NODE* tail;} QUEUE;QUEUE* create_queue () {QUEUE* queue = new QUEUE; queue- > head = NULL; queue- > tail = NULL; return queue;} NODE* create_node (int data) {NODE* node = new NODE; node- > data = data; node- > next = NULL; return node } void queue_push (QUEUE* queue,int data) {NODE* node = create_node (data); if (queue- > tail = = NULL) {queue- > tail = node; queue- > head = node;} else {queue- > tail- > next = node; queue- > tail = node;} NODE* destroy_node (NODE* node) {NODE* next = node- > next; delete node; return next } int queue_pop (QUEUE* queue) {if (queue- > head = = NULL) {assert (false);} int data = queue- > head- > data; queue- > head = destroy_node (queue- > head); if (queue- > head = = NULL) {queue- > tail = NULL;} return data;} int queue_size (QUEUE* queue) {int size = 0; NODE* node= NULL; for (node=queue- > head; node) Node=node- > next) {size++;} return size;} void clear (QUEUE* queue) {while (queue- > head) {queue- > head = destroy_node (queue- > head);} queue- > tail = NULL;} void destroy_queue (QUEUE* queue) {clear (queue); delete queue } bool queue_empty (QUEUE* queue) {if ((queue- > head==NULL) & & (queue- > tail==NULL)) {return true;} return false;} int main () {QUEUE* queue = create_queue (); cout