阅读背景:

数据结构之优先队列_Descending Angel的博客

来源:互联网 

先看效果图:

话不多说,直接上代码!!! 

#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include<time.h>
#define MAX 10
typedef struct Data {
	const char* name;
	int Weight;//权值
}*DATA,DaTA;
typedef struct Queue {
	Data* pMemory;
	int CurSize;//万金油参数
}*LPQUEUE,QUEUE;
LPQUEUE CreateQueue() {
	LPQUEUE queue = (LPQUEUE)malloc(sizeof(QUEUE));
	assert(queue);
	queue->pMemory = (DATA)malloc(sizeof(DaTA) * MAX);
	assert(queue->pMemory);
	queue->CurSize = 0;
	return queue;
}
void Push(LPQUEUE queue, DaTA data) {
	if (queue->CurSize == MAX)
		return;
	queue->pMemory[queue->CurSize++] = data;
}
void Pop(LPQUEUE queue, DATA data) {
	if (queue->CurSize == 0)
		return;
	DaTA Max = queue->pMemory[0];
	int pos = 0;
	for (int i = 0; i < queue->CurSize; i++) 
		if (queue->pMemory[i].Weight > Max.Weight) {
			Max = queue->pMemory[i];
			pos = i;
		}
	*data = Max;
	for (int i = pos+1; i < queue->CurSize; i++)
		queue->pMemory[i - 1] = queue->pMemory[i];
	queue->CurSize--;
}
bool temp(LPQUEUE queue) {
	return queue->CurSize == 0;
}
int main() {
	srand((unsigned)time(NULL));
	LPQUEUE queue = CreateQueue();
	DaTA TempData;
	DaTA array[5] = {
		"冠西",rand() % 50,
	    "一凡",rand() % 50,
		"志翔",rand() % 50,
		"冰冰",rand() % 50,
		"俊洁",rand() % 50
	};
	for (int i = 0; i < 5; i++)
		Push(queue, array[i]);
	printf("VIP等级\t用户\n");
	while (!temp(queue)) {
		Pop(queue, &TempData);
		printf("%d\t%s\n", TempData.Weight, TempData.name);
	}
	return 0;
}#include<stdio.h>



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: