二叉堆C语言实现
二叉堆是一种二叉树,其儿子的值一定不小于父亲的值,树的节点是按从上到下,从左到右紧凑排列的。
有两种操作:
push(x):将x插入二叉堆,并自动维护使二叉堆变得有序。
pop():取出顶部的值(最小值),并返回该值,同时维护二叉堆有序。
代码如下:
#include<stdio.h>
#define MAX_N 1000
int heap[MAX_N];
int sz = 0;
void push(int x)//插入堆的值
{
int now = sz++;//插入节点的编号
while(now > 0)
{
int f = (now - 1)/2;//父亲节点的编号
if(heap[f] <= x)break;//如果顺序未颠倒,则退出循环
heap[now] = heap[f];
now = f;
}
heap

本文介绍了二叉堆的概念,这是一种特殊的二叉树结构,其中每个节点的值都大于或等于其子节点的值。文章重点讲解了如何使用C语言实现二叉堆的基本操作,包括插入元素(push)和删除最小元素(pop),以保持堆的有序性。
最低0.47元/天 解锁文章
1380

被折叠的 条评论
为什么被折叠?



