鏈式佇列的表示和實現

2021-06-21 14:45:54 字數 1490 閱讀 3188

// 2023年4月19日

// 鏈式佇列的實現

// 用頭結點來儲存鍊錶長度

//// 儲存格式

// 儲存結構和單鏈表一樣

// queue

// ↓

// [data][next] -> [data][next] -> [data][next] -> ... [data][0]

// head node node 0 node 1 end node

//#include #include #include #include typedef int element_t;

typedef struct node_t

node_t, *linkqueue_t;

// 初始化乙個空佇列

void queue_init(linkqueue_t& queue)

// 清空佇列

void queue_clear(linkqueue_t& queue)

}// 銷毀佇列

void queue_destroy(linkqueue_t& queue)

// 判斷是否為空

bool queue_is_empty(linkqueue_t& queue)

// 獲取佇列的長度

int queue_length(linkqueue_t& queue)

// 向佇列放入乙個元素

void queue_put(linkqueue_t& queue, element_t e)

// 放入佇列中去,放到最後乙個元素的後面

node_t *q = (node_t *)malloc(sizeof(node_t));

q->data = e;

q->next = p->next;

p->next = q;

++queue->data; // 更新佇列的長度

}// 從佇列裡取出乙個元素

bool queue_get(linkqueue_t& queue, element_t& e)

node_t *p = queue->next; // 取走第乙個節點

e = p->data;

queue->next = p->next;

--queue->data; // 更新佇列的長度

free(p);

return true;

}// 輸出佇列元素的內容

void print(linkqueue_t& queue)

printf("\n");

}int range(int a, int b)

int main()

int b = range(1, size);

while (b--)

}print(queue);

}queue_destroy(queue);

}return 0;

}

佇列的鏈式表示和實現

佇列的鏈式表示和實現 帶頭結點的鏈式佇列 include 定義 typedef struct qnodeqnode,queueptr typedef structlinkqueue 初始化 演算法思想 生成乙個頭結點,是隊頭指標和隊尾指標都指向該頭結點,並將頭結點的指標域置空。int initque...

佇列的鏈式表示

主題 佇列的鏈式表示 開發環境 visual studio 開發語言 c include include include typedef int elemtype typedef enum boolean 結點 typedef struct qnode qnode,pqnode 佇列 typedef...

佇列的鏈式表示

佇列是和棧相反的一中線性結構,棧的後進先出lifo結構,而佇列是先進先出fifo結構。它只允許在表的一端進行插入,而在另一端進行刪除。1 2和棧相反,佇列是一種先進先出fifo的結構,包括隊頭front,隊尾rear 3使用鏈式結構表示佇列時,分別乙個頭指標和尾指標。為操作方便,鏈佇列也有乙個頭結點...