檔案概述
- queue.h 存放佇列(佇列結點結構以及結點指標),并對佇列的操作函式進行宣告
- queue.c 對之前在queue.h中宣告的佇列的操作函式進行定義
代碼
queue.h
1 typedef int ElementType; 2 typedef struct QNode * Queue; 3 struct Node{ 4 struct Node * Next; 5 ElementType Data; 6 }; 7 struct QNode{ 8 struct Node * front; 9 struct Node * rear; 10 }; 11 12 Queue CreateQueue(); //生成空佇列 13 void AddQ(Queue Q,ElementType item); //將資料元素 item 插入佇列 Q 中 14 int IsEmpty(Queue Q); //判斷佇列 Q 是否為空 15 ElementType DeleteQ(Queue Q); //將隊頭資料元素從佇列中洗掉并回傳
queue.c
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include "queue.h" 4 5 //生成空佇列 6 Queue CreateQueue(int MaxSize){ 7 Queue tempQueue = (Queue)malloc(sizeof(QNode)); 8 tempQueue->front = NULL; 9 tempQueue->rear = NULL; 10 } 11 12 //將資料元素 item 插入佇列 Q 中 13 void AddQ(Queue Q, ElementType item){ 14 struct Node * tempNode = (struct Node *)malloc(sizeof(struct Node)); 15 tempNode->Data =https://www.cnblogs.com/tomastu/p/ item; 16 tempNode->Next = NULL; 17 if(IsEmpty(Q)){ 18 Q->front = tempNode; 19 Q->rear = tempNode; 20 } 21 else{ 22 Q->rear->Next = tempNode; 23 Q->rear = tempNode; 24 } 25 return; 26 } 27 28 //判斷佇列 Q 是否為空 29 int IsEmpty(Queue Q){ 30 return (Q->front == NULL); 31 } 32 33 //將隊頭資料元素從佇列中洗掉并回傳 34 ElementType DeleteQ(Queue Q){ 35 if(IsEmpty(Q)){ 36 printf("Error"); 37 return; 38 } 39 struct Node *tempNode = Q->front; 40 ElementType tempValue = https://www.cnblogs.com/tomastu/p/tempNode->Data; 41 if(Q->front == Q->rear){ 42 Q->front = Q->rear = NULL; 43 } 44 else{ 45 Q->front = Q->front->Next; 46 } 47 free(tempNode); 48 return tempValue; 49 }
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/25899.html
標籤:C++
上一篇:unresolved external symbol
下一篇:求大神幫忙,編輯一個程式
