链式队列的实现(头文件及源程序)
生活随笔
收集整理的這篇文章主要介紹了
链式队列的实现(头文件及源程序)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
鏈?zhǔn)疥?duì)列的實(shí)現(xiàn)(頭文件及源程序)
Linkedqueue.h
#ifndef __LINKEDQUEUE_H__ #define __LINKEDQUEUE_H__//元素類型定義 typedef int ElemType_Queue;//結(jié)點(diǎn)結(jié)構(gòu)體類型定義 typedef struct Node_Queue {ElemType_Queue data;struct Node_Queue *next;}Node_Queue;//鏈表類型定義 typedef struct Linkedqueue {int num;Node_Queue *rear;Node_Queue *front; }Linkedqueue;//鏈表初始化 Linkedqueue *Init_Linkedqueue();//創(chuàng)建一個新結(jié)點(diǎn) Node_Queue *Create_New_Node_Queue(ElemType_Queue value);//入隊(duì) void push_Queue(Linkedqueue *linkedqueue, ElemType_Queue value);//出隊(duì) void pop_Queue(Linkedqueue *linkedqueue);//獲取隊(duì)頭 ElemType_Queue get_QueueHead(Linkedqueue *linkedqueue);//判斷是否空隊(duì) int empty_Queue(Linkedqueue *linkedqueue);//銷毀一個隊(duì)列 //ForwardListHead *destroy_ForwardListHead(ForwardListHead *forwardlisthead);void destroy_Queue(Linkedqueue *linkedqueue);//獲取隊(duì)列長度 int length_Queue(Linkedqueue *linkedqueue);#endifLinkedqueue.c
#include <stdio.h> #include <stdlib.h> #include "linkedqueue.h"//隊(duì)列初始化 Linkedqueue *Init_Linkedqueue() {Linkedqueue *linkedqueue = malloc(sizeof(Linkedqueue));linkedqueue->num = 0;linkedqueue->rear = NULL;linkedqueue->front = NULL;return linkedqueue; }//創(chuàng)建一個新結(jié)點(diǎn) Node_Queue *Create_New_Node_Queue(ElemType_Queue value) {Node_Queue *new_node = malloc(sizeof(Node_Queue));new_node->data = value;new_node->next = NULL;return new_node; }//入隊(duì) void push_Queue(Linkedqueue *linkedqueue, ElemType_Queue value) {if (linkedqueue == NULL){printf("隊(duì)列不存在!\n");return;}Node_Queue *new_node = Create_New_Node_Queue(value);if (linkedqueue->num == 0){linkedqueue->rear = new_node;linkedqueue->front = new_node;}else{linkedqueue->rear->next = new_node;linkedqueue->rear = new_node;}linkedqueue->num++; }//出隊(duì) void pop_Queue(Linkedqueue *linkedqueue) {if (linkedqueue == NULL){printf("隊(duì)列不存在!\n");return;}Node_Queue *p = linkedqueue->front;linkedqueue->front = p->next;free(p);// p->next = NULL;linkedqueue->num--; }//銷毀一個隊(duì)列 void destroy_Queue(Linkedqueue *linkedqueue) {if (linkedqueue == NULL){printf("隊(duì)列不存在!\n");return;}else{while (linkedqueue->num != 0){pop_Queue(linkedqueue);}//free(linkedqueue);linkedqueue = NULL;} }//獲取隊(duì)頭 ElemType_Queue get_QueueHead(Linkedqueue *linkedqueue) {if (linkedqueue == NULL){printf("隊(duì)列不存在!\n");return -1;}if (linkedqueue->num == 0){printf("隊(duì)已空,獲取隊(duì)頭元素失敗!");return 0;}else{return linkedqueue->front->data;} }//獲取隊(duì)列長度 int length_Queue(Linkedqueue *linkedqueue) {if (linkedqueue == NULL){printf("隊(duì)列不存在!\n");return 0;}return linkedqueue->num; }//判斷是否空隊(duì) int empty_Queue(Linkedqueue *linkedqueue) {if (linkedqueue == NULL){return -1;//隊(duì)列不存在}if (linkedqueue->num == 0){return 1; //隊(duì)空}else{return 0; //隊(duì)非空} }總結(jié)
以上是生活随笔為你收集整理的链式队列的实现(头文件及源程序)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux小米随身wifi,小米随身wi
- 下一篇: 小米平板2wifi驱动下载_Xiaomi