用堆實現優先順序佇列

2021-08-19 23:22:12 字數 1273 閱讀 8529

申明:要用到堆的基本操作**,鏈結為:

typedef struct priorityqueue 

priorityqueue;

// 優先順序佇列初始化

void priorityqueueinit(priorityqueue* q, compare com);

// 向佇列中插入元素

void priorityqueuepush(priorityqueue* q, datatype data);

// 刪除優先順序最高的元素

void priorityqueuepop(priorityqueue* q);

// 獲取佇列中元素個數

int priorityqueuesize(priorityqueue* q);

// 檢測優先順序佇列是否為空

int priorityqueueempty(priorityqueue* q);

// 獲取堆頂的元素

datatype priorityqueuetop(priorityqueue* q);

// 銷毀優先順序佇列

void priorityqueuedestroy(priorityqueue* q);

priorityqueue.c

// 優先順序佇列初始化 

void priorityqueueinit(priorityqueue* q, compare com)

// 向佇列中插入元素

void priorityqueuepush(priorityqueue* q, datatype data)

// 刪除優先順序最高的元素

void priorityqueuepop(priorityqueue* q)

// 檢視佇列元素個數

int priorityqueuesize(priorityqueue* q)

// 檢測優先順序佇列是否為空

int priorityqueueempty(priorityqueue* q)

// 獲取堆頂的元素

datatype priorityqueuetop(priorityqueue* q)

// 銷毀優先順序佇列

void priorityqueuedestroy(priorityqueue* q)

test.c

#include "heap.h"

int main()

優先順序佇列(堆實現)

一 優先順序佇列定義 二 方法實現 獲得最大元素方法 去掉最大元素方法 修改優先順序方法 新增節點 三 實現 用堆實現乙個優先順序佇列 主要是新增 修改 刪除節點 節點具有唯一性 author hhf 2014年11月28日 public class priorityqueue 返回優先佇列中優先順...

優先順序佇列(堆實現)

優先順序佇列 概念 一般來說我們會根據事情的重要程度優先處理某事,比如完成學習任務和刷微博,我們會認為完成學習任務比較重要,因此會先執行它,因此在這種情況下,資料結構就應提供兩個基本的操作,一是返回最高優先順序物件,二是新增新的物件,這種資料結構就叫做優先順序佇列。二叉樹的順序儲存 儲存方式 使用陣...

用堆封裝優先順序佇列

1 優先順序佇列 優先佇列是一種資料結構,能夠保證每次出隊的是佇列中優先順序最高的元素 可以自己定義比較器 使用堆的堆頂元素維護這個優先順序最高的元素,因為堆具有堆序性,堆頂元素要麼是最小的,要麼是最大的。2 具體 實現 中用到的堆 priorityqueue.h pragma once inclu...