C++ 数据结构学习 ---- 位图

目录

1. 头文件

2. 完整代码

3.运行结果及截图


1. 头文件

#include <cstdlib>
#include <cstdio>
#include <memory.h>
#define Rank int

class Bitmap { //位图Bitmap类:以空间作为补偿,节省初始化时间(既允许插入,亦支持删除)
private:
    Rank* F; Rank N; //规模为N的向量F,记录[k]被标记的次序(即其在栈T[]中的秩)
    Rank* T; Rank top; //容量为N的栈T,记录被标记各位秩的栈,以及栈顶指针
public:
    Bitmap(Rank n = 8) //按指定(或默认)规模创建比特图(为测试暂时选用较小的默认值)
    {
        N = n; F = new Rank[N]; T = new Rank[N]; top = 0;
    } //在O(1)时间内隐式地初始化
    ~Bitmap() { delete[] F; delete[] T; } //析构时释放空间

 // 接口
    inline void reset() { top = 0; } //复位:从逻辑上切断所有校验环,O(1)
    inline void set(Rank k) { //插入:从逻辑上将B[k]置为true,O(1)
        if (!test(k)) { //忽略已带标记的位
            T[top] = k; F[k] = top++; //创建校验环
        }
    }
    inline void clea
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值