[C/C++ 演算法]-資料結構與演算法(文魁):佇列使用範例

[C/C++ 演算法]-資料結構與演算法(文魁):佇列使用範例

[C/C++ 演算法]-資料結構與演算法(文魁):佇列使用範例

 

線上執行結果:http://www.tutorialspoint.com/compile_c_online.php

code2html:http://tohtml.com/

 

/* =============== Program Description =============== */
/* 程式名稱 : 8_2.cpp 				       */
/* 程式目的 : 佇列使用範例			       */
/* 輸    入 : 輸入到佇列的整數資料		       */
/* 輸    出 : 由佇列所輸出的整數資料		       */
/* =================================================== */
#define n 5
// 宣告標頭檔
#include "stdio.h"
// 宣告全域變數
int Queue[n];
int front=-1;
int rear=-1;
// 宣告函式原型
// 利用傳值的方式把整數data傳進addq函式中
void addq(int data);
// 從delq函式中回傳一個整數
int delq(void);
// 從isEmpty函式中回傳一個整數
int isEmpty(void);
// 從isFull函式中回傳一個整數
int isFull(void);
void main(void)
{
int i;
int A[n]={1,3,5,7,9};
// 輸入的資料
printf(" Data input: ");
/* 依序資料放入佇列 */
for(i=0;i<n;i++)
{
printf("%d",A[i]);
addq(A[i]);
}
printf("\n");
// 輸出的資料
printf(" Data output : ");
/* 依序從佇列取出資料 */
for(i=0;i<n;i++)
printf("%d",delq());
printf("\n");
getchar();
}
void addq(int data)
{
if(isFull()) /* isFull��檢查佇列��否已滿了*/
printf("Queue is Full!\n");
else
Queue[++rear] = data;
}
int delq(void)
{
if(isEmpty()) /* isEmpty��檢查佇列��否已空了*/
{
printf("Queue is Empty!\n");
return 0;
/* 傳回0代表失敗*/
}else{
return Queue[++front];
/* 一切正常front,加1,且傳回資料*/
}
}
int isEmpty(void)
{
if(front==rear)
return 1; /* 1代表已空 */
else
return 0; /* 0代表未空 */
}
int isFull(void)
{
if(rear==n-1)
return 1; /* 1代表已滿 */
else
return 0; /* 0代表未滿 */
}

 

 



發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *