程式**編譯可以通,未進行執行時測試。
/*本程式測試線性邏輯結構:佇列
*/#include
#include
struct
queuelist
;typedef
struct
queuelist queue;
typedef
enum
bool;
void createqueue(queue* queue,int
size);
bool isqueueempty(queue*queue);
bool isqueuefull(queue*queue);
bool enqueue(queue* queue,int
element);
bool dequeue(queue* queue,int*element);
int main(int argc,char*argv)
/*函式功能:
建立佇列
函式原型:
void createqueue(queue* queue,int size)
函式引數:
queue* queue:要建立的佇列的指標
int size:要建立的佇列的大小
返回值:
無異常: 傳遞指標
*/void createqueue(queue* queue,int
size)
else
}else}/*
函式功能:
判斷佇列是否為空
函式原型:
bool isqueueempty(queue* queue)
函式引數:
queue* queue:待判斷佇列指標
返回值:
如果為空則返回true,否則返回false
異常: 傳遞空指標
*/bool isqueueempty(queue*queue)
else
}else}/*
函式功能:
判斷佇列是否滿
函式原型:
bool isqueuefull(queue* queue)
函式引數:
queue* queue:待判斷佇列指標
返回值:
若佇列滿,則返回true,否則返回false
異常: 傳遞空指標
*/bool isqueuefull(queue*queue)
else
}else}/*
函式功能:
入棧函式原型:
bool enqueue(queue* queue,int element)
函式引數:
queue* queue:待入隊的佇列指標
int element:待入隊的元素
*/bool enqueue(queue* queue,int
element)
//如果隊列為空
if(isqueueempty(queue))
else
}else
queue->queue[queue->rear]=element;
queue->rear--;
return
true;
}}/*
函式功能:
出隊函式原型:
bool dequeue(queue* queue,int* element)
函式引數:
queue* queue:待吹隊佇列
int* element:如果出隊成功,則儲存出隊的元素值
返回值:
如果出隊成功,返回true;
如果出隊失敗,返回false,並且設定*element=0;
*/bool dequeue(queue* queue,int*element)
if(isqueueempty(queue))
else
}
演算法和資料結構
演算法和資料結構 演算法和資料結構 千絲萬縷的聯絡 縱觀各種演算法書籍,大多都是將演算法和資料結構作為乙個整體來講述。資料結構就是陣列 樹結構等儲存或表現物件資料的結構。將演算法和資料結構作為整體講述,是因為必須依照演算法中的常用操作選擇資料結構。例如,事先將資料儲存在適當的樹形結構中,大多數情況下...
演算法和資料結構
演算法 資料結構與演算法的關係是相互依賴不可分割的。演算法的定義 演算法是解決特定問題求解步驟的描述,在計算機中為指令的有限序列,並且每條指令表示乙個或多個操作。演算法的特性 有窮性 確定性 可行性 輸入 輸出。演算法設計的要求 正確性 可讀性 健壯性 高效率和低儲存量需求。演算法特性與演算法設計容...
演算法和資料結構
好吧,在這裡,您被優秀或優秀的軟體開發人員所隔開。在這種情況下,我會告訴您,一開始或至少在我的情況下,我知道大多數時候,對於我認識的大多數人,您會覺得自己是乙個無能的人或白痴。基本上,我怎麼可能不理解這一點,然後您會感到沮喪。在這種情況下,我會告訴您情況並不像您想的那麼糟糕,您會告訴我 您知道,您甚...