演算法和資料結構 4 線性結構

2021-09-06 09:07:31 字數 1968 閱讀 6518

程式**編譯可以通,未進行執行時測試。

/*

本程式測試線性邏輯結構:佇列

*/#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

}

演算法和資料結構

演算法和資料結構 演算法和資料結構 千絲萬縷的聯絡 縱觀各種演算法書籍,大多都是將演算法和資料結構作為乙個整體來講述。資料結構就是陣列 樹結構等儲存或表現物件資料的結構。將演算法和資料結構作為整體講述,是因為必須依照演算法中的常用操作選擇資料結構。例如,事先將資料儲存在適當的樹形結構中,大多數情況下...

演算法和資料結構

演算法 資料結構與演算法的關係是相互依賴不可分割的。演算法的定義 演算法是解決特定問題求解步驟的描述,在計算機中為指令的有限序列,並且每條指令表示乙個或多個操作。演算法的特性 有窮性 確定性 可行性 輸入 輸出。演算法設計的要求 正確性 可讀性 健壯性 高效率和低儲存量需求。演算法特性與演算法設計容...

演算法和資料結構

好吧,在這裡,您被優秀或優秀的軟體開發人員所隔開。在這種情況下,我會告訴您,一開始或至少在我的情況下,我知道大多數時候,對於我認識的大多數人,您會覺得自己是乙個無能的人或白痴。基本上,我怎麼可能不理解這一點,然後您會感到沮喪。在這種情況下,我會告訴您情況並不像您想的那麼糟糕,您會告訴我 您知道,您甚...