資料結構 c佇列實現

2022-10-11 03:30:09 字數 737 閱讀 8489

使用雙向鍊錶

#include//

佇列結點的結構

typedef struct

_qnodeqnode;

//佇列

typedef struct

_queue queue;

//初始化,注意這裡使用一級指標

void initqueue(queue *q)

//入隊

void enqueue(queue *q, int

val)

//設定新結點值

temp->data =val;

//在舊煉表頭結點前插入新結點,使新結點成為煉表頭結點

temp->next = q->head;

q->head->prior =temp;

q->head =temp;}//

出隊, 從鍊錶

int dequeue(queue *q)

t = q->tail;

q->tail = q->tail->prior; //

指向倒數第二個結點

q->tail->next =null;

val = t->data;

free

(t);

return

val;

}void printq(qnode *q)

}

執行如下

$ ./queue   5

67

資料結構 C 實現之佇列結構

佇列本質上是特殊的線性表,它是在一端 隊頭 進行刪除操作,另一端 隊尾 進行插入操作,遵守先進先出規則 fifo 既然佇列也是線性表,當然也有兩種資料儲存方式 順序儲存結構,這種結構事先要基本確定佇列的大小,不支援動態分配儲存空間,所以插入和刪除元素比較省時,但是會造成空間的浪費。為了節省空間,後來...

資料結構(C實現) 鏈佇列

鏈佇列,即佇列的鏈式儲存結構,它是僅在表頭刪除和表尾插入的單鏈表,因此乙個鏈佇列需要設定兩個分別指示隊頭元素和隊尾元素的指標,為了操作方便,給鏈佇列新增乙個頭結點,並令隊頭指標指向頭結點,由此,空的鏈佇列的判斷條件就是隊頭指標和隊尾指標均指向頭結點。鏈佇列型別描述 typedef int qelem...

資料結構之佇列 C 實現

佇列很重要的一點就是入隊在隊尾進行,出隊在隊首進行,所以又把佇列稱為先進先出表。功能實現 1.入隊功能 使用鍊錶實現 include iostream using namespace std typedef struct studentnode typedef struct linkqueue qu...