堆排序之小根堆

本文介绍了堆的概念,特别是小根堆的性质,即根节点的值小于其子节点。堆通常用于排序目的,通过链式存储实现。详细阐述了如何创建堆,包括创建结点、动态队列的使用等。同时,提供了小根堆的完整代码实现,通过调整堆以保持最小元素在顶部,从而实现排序功能。
摘要由CSDN通过智能技术生成

一、堆

     1.概念:它是一种完全二叉树(即前n-1层是满的,最后一层连续缺失右边的结点)

     2.堆的目的:排序

     3.堆的创建:创建一棵完全二叉树

     4.存储方式:链式存储,按层存储

     5.算法:建立结构体,声明结点类型

                    typedef struct node{

                            int data;     //结点的值

                             struct node *left,*right;// 左、右子女

                     }     

        6.先创建根结点,后创建其他结点;

                  采用队列存储数据元素,动态创建一个队列:Q

                  初始化:root为根结点,左右都赋空,让pa指向根结点

                  遍历数据集合,创建新结点 p,看pa的左右域,先挂左子女,后挂右子女;用p实现挂结点

                  创建完,释放队列

                   

  BTNode* C
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值