这是我作为作业得到的问题。我需要在堆中插入一个元素,我需要使用以下声明构建初始堆。
typedef struct {
int count;
int entry[MAXLIST];
} LIST;
我也搜索了它,但由于我不熟悉struct
我无法解决这个问题。请帮我解答。
答案 0 :(得分:1)
在您寻求帮助时,有很多关于如何使用C实现堆的资源和教程。
在google中查找:如何在C 中实现堆数据结构,例如,您还可以检查这些链接:
Heap Data Structures -with C Program source code
C Program to Implement a Heap & provide Insertion & Deletion Operation
并尝试指定您的意思是哪种堆。
作为建议,首先尝试了解数据结构的原理,从链表开始,尝试在C中实现一个。如果你遇到问题,那就问一个明确而具体的问题,我就是确定很多人会帮忙。
答案 1 :(得分:0)
如果要在堆写上分配结构
LIST* pElement = malloc(sizeof(LIST));
pElement
现在指向结构或更精确地指向可以保存结构LIST的内存区域。
当您在结构中处理单个元素时,例如<。p>
pElement->count = 0;
获取一堆结构只需通过将结构的大小乘以某个数字
来分配更多空间LIST* pElement = malloc(sizeof(LIST)*10); // array of 10 structs
...
pElement[5].count = 0;