在c++中动态创建堆
Creating heaps dynamically in C++
我在实现堆作为数据结构时遇到了一个问题。我的任务是创建最初未知数量的堆,最初也未知大小,我将能够在以后的工作。二进制堆的数量及其大小将作为参数(一些标准数据)给出,因此for
循环应该是合适的。此外,我必须尽可能少地面向对象,因为它是算法类问题的一部分……
但是,我不知道从哪里开始,因为我不知道如何引用它们(通过名称?)以及如何存储它们
使用
struct Heap
{
int *arr;
int count; //number of elements in heap
int capacity; //size of heap;
int heap_type; //min(0) or max(1)
};
然后你可以定义堆,使用new/malloc动态分配它,并初始化所有四个成员。
注意:你必须做两个动态分配,一个为堆,另一个为数组arr。
我不知道从哪里开始,因为我不知道如何引用它们(通过名称?)以及如何存储它们,所以我将非常感谢你们的任何帮助。
考虑为堆(这里的堆是指二进制堆)创建一个类。您应该将这个类设置为半规则类型(可复制、可移动、具有同等可比性)。然后,在std::vector中存储n个类的实例。
我不知道怎么称呼他们(名字?)
你可以有一个堆数组,并通过索引
来引用它们和如何存储它们
堆存储为数据的平面数组。索引为i
的节点的子节点为索引为2*i
和2*i+1
的节点
相关文章:
- 如何为 c++ 的不同变量类型的结构元素创建动态数组?
- 当我使用自定义类型创建动态数组时,即使使用字符串,它似乎也不起作用
- 创建动态对象并将其推送到矢量中
- 在创建动态二维数组时,在A[i*c+j]中使用c有什么用,即c代表什么
- 无法在 CMake 中创建动态库并将其链接到另一个动态库?
- 编写所需的代码以创建动态一维整数数组
- 创建动态分配的数组C
- 试图创建动态分配的char数组时的分割故障
- 在 c++ 上创建动态数组时出错
- 使用 MSVC C++编译器创建动态大小的数组
- 问题:在类中创建动态数组
- 如何在C 中创建动态数组,该数组将在执行时决定其大小
- 使用 Cmake 安装时创建动态库
- 为 C 绑定创建动态以 null 结尾的参数
- 如何在C 中创建动态分配的2D结构阵列
- 为矩阵创建动态数组,以循环迭代器命名
- 如何在C 中使用类创建动态列表
- 读取该文件,然后创建动态数组
- 包装本征的张量类以创建动态秩张量?
- 如何在C++中创建动态对象列表