鏈式佇列的C 實現

2021-07-04 13:34:13 字數 1862 閱讀 8452

鏈式佇列的c++實現

一、資料結構

struct qnode    //定義佇列結點的資料結構

;struct linkqueue //定義佇列的資料結構

;

void initqueue(linkqueue &q)     //構造乙個空的佇列

int isempty(linkqueue &q) //判斷佇列是否為空

void enqueue(linkqueue &q,double e) //從佇列尾部插入乙個結點

void dequeue(linkqueue &q, double &e) //從佇列首部刪除乙個結點

void destoryqueue(linkqueue &q) //銷毀乙個佇列

二、完整**

#include "stdafx.h"

#include #include using namespace std;

struct qnode //定義佇列結點的資料結構

;struct linkqueue //定義佇列的資料結構

;void initqueue(linkqueue &q) //構造乙個空的佇列

int isempty(linkqueue &q) //判斷佇列是否為空

void enqueue(linkqueue &q,double e) //從佇列尾部插入元素

void dequeue(linkqueue &q, double &e) //從佇列首部刪除乙個結點

void destoryqueue(linkqueue &q) //銷毀乙個佇列

}int _tmain(int argc, _tchar* argv)

//輸出佇列元素,隊首->隊尾

qnode *p;

p = q->front->next;

if (p == null) //如果為空表,直接退出

cout << "佇列資料依次為:" << endl;

while (p!=null)

cout << endl;

//刪除佇列元素

while (!isempty(*q))

//釋放記憶體空間

delete q->front;

delete q;

return 0;

}

三、實驗截圖

五、總結

之所以寫的這麼詳細,我是因為深受網路之苦,在老師心中我的智商還蠻高的,但每次自己上網求助,看一些別人寫部落格時,特別鬱悶與無力,有的基本沒注釋,有的有注釋,但太敷衍塞責,有的思路太混亂,自己都沒搞清楚,就寫出來害人,看著看著就沒興趣了,完全不是給人看的,相信除了作者,沒人能夠看懂。所以,我本著良心,既然發了部落格,就堅持寫的能夠讓絕大部分人看懂,自己寧願多花點 時間寫注釋,也不願意網友看了我的部落格而掃了興致。通過這個演算法,我對佇列有了更好的認識,因為它要定義兩個結構體,一般單鏈表就乙個結構體,所以,我剛開始花了些時間才明白為什麼,讓後自己乙個乙個函式去實現功能,最後經過main測試,得到最後的想要的結果。我相信實踐是最能提公升程式設計水平的,大家自己私下一定要好好思考問題,實在不懂就可以問,查,但最後,自己一定要自己實現一遍,不然忘的會很快。。。後面還會陸續更新嚴蔚敏的資料結構(c語言版)的各種演算法實現,我也是現學現賣,希望各位朋友可以批評指正。

佇列的鏈式實現(c語言

一 佇列的鏈式結構體 define eletype int define status int typedef struct queuenode queuenode,linkqueuepoi typedef struct linkqueue linkqueue 二 建立乙個空佇列status ini...

佇列 鏈式結構 C 實現

教科書告訴我們所先進先出的結構叫做佇列,沒錯,就是佇列,正如排隊一樣了,出隊永遠在隊頭,入隊永遠在隊尾,我們要頻繁對這兩個點進行操作,那麼應該選擇什麼樣的結構來實現呢?陣列,特點 實現簡單,容量有限,刪除一次要進行一定數量元素的移動,所有效率有待提高。當然可以迴圈使用陣列空間來避免移動元素帶來的開銷...

鏈式佇列的實現

typedef struct nodelinklist typedef structlinkqueue void setnull linkqueue p set a empty queue,front and rear pointer both point to a head node void q...