// 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使用鏈式結構表示佇列時,分別乙個頭指標和尾指標。為操作方便,鏈佇列也有乙個頭結點...