二叉堆C语言实现

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

二叉堆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[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值