SeqPriorityQueue 順序優先順序佇列

2021-08-26 19:22:33 字數 2505 閱讀 6951

ps:

1、不用考慮「假溢位」的情況。

2、出佇列時間複雜度為o(n)。將出佇列元素後的元素均往前移1個索引。

/*

** file name: seqpriorityqueue.h

** author: zhoufeng

** date: 2012/03/29

*/#ifndef seq_priority_queue_h

#define seq_priority_queue_h

#define bool int

#define true 1

#define false 0

#define error 0

#define success 1

#define max_size 100

typedef int eletype;

typedef struct queueele

queueele;

typedef struct seqpriorityqueue

seqpriorityqueue;

void initspq(seqpriorityqueue *spq);

int spqdelete(seqpriorityqueue *spq, queueele *pqueueelement);

bool isspqempty(seqpriorityqueue *spq);

int getspq(seqpriorityqueue *spq, queueele *pqueueelement);

#endif

/*

** file name: seqpriorityqueue.h

** author: zhoufeng

** date: 2012/03/29

*/#include #include #include "seqpriorityqueue.h"

void initspq(seqpriorityqueue *spq)

for(i = 0; i < max_size; ++i)

spq->nrear = 0;

spq->ncount = 0;

} (spq->aspqueue)[spq->nrear] = queueele;

++(spq->nrear);

++(spq->ncount);

return success;

}int spqdelete(seqpriorityqueue *spq, queueele *pqueueelement)

/* get the max priority index. */

nmaxpriority = (spq->aspqueue)[0].npriority;

for(index = 1; index < spq->ncount; ++index)

else

}(*pqueueelement).npriority = nmaxpriority;

(*pqueueelement).data = (spq->aspqueue)[nmaxindex].data;

for(index = nmaxindex + 1; index < spq->ncount; ++index)

--(spq->ncount);

return success;

}bool isspqempty(seqpriorityqueue *spq)

if(spq->ncount == 0)

else

}int getspq(seqpriorityqueue *spq, queueele *pqueueelement)

/* get the max priority index. */

nmaxpriority = (spq->aspqueue)[0].npriority;

for(index = 1; index < spq->ncount; ++index)

else

}(*pqueueelement).npriority = nmaxpriority;

(*pqueueelement).data = (spq->aspqueue)[nmaxindex].data;

return success;

}

測試程式:

#include #include "seqpriorityqueue.h"

int main(int argc, char *argv)

for(i = 50; i < max_size; ++i)

printf("\n");

printf("[get queue]\npriority data\n");

printf("--------- -------\n");

while(!isspqempty(&spq))

return 0;

}

gdb除錯:clear清除斷點、u跳出迴圈。

如何定義css優先順序順序

1.層疊選擇器的優先順序 瀏覽器預設 外部樣式表 內部樣式表 內聯樣式 其中,樣式表優先順序 類選擇器 類派生選擇器 id選擇器 id派生選擇器 生選擇器以前叫上下文選擇器,所以完整的層疊優先順序是 瀏覽器預設 外部樣式表 外部樣式表類選擇器 外部樣式表類派生選擇器 外部樣式表id選擇器 外部樣式表...

樣式表優先順序順序

1 最高優先順序的位置是html文件頭部的元素。2第二優先順序的位置是元素中 import語句所匯入的樣式表。3第三優先順序的位置是元素附加的樣式表 4第四優先順序的位置是元素附加的樣式表中的 import語句所匯入的樣式表 5第5優先順序的位置是終端使用者附加的樣式表 有一種例外情況是終端使用者樣...

python優先順序佇列 python 優先順序佇列

簡介 優先順序佇列是基於堆的,關於堆的時候可以參考文章堆,優先順序佇列就是入隊時,會分配乙個優先順序,之後出隊時,根據優先順序出列。如,入隊時 4,a 6,r 3 d 則出隊順序 6,r 4,a 3 d 優先順序佇列的python實現 class priorityqueue object def i...