如何使用struct将元素插入堆排序

时间:2015-12-05 19:29:44

标签: c struct heapsort

这是我作为作业得到的问题。我需要在堆中插入一个元素,我需要使用以下声明构建初始堆。

typedef struct {
    int count;
    int entry[MAXLIST];
} LIST;

我也搜索了它,但由于我不熟悉struct我无法解决这个问题。请帮我解答。

2 个答案:

答案 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;