我有一个任务要实现二叉堆。然而,我不确定是应该将二叉堆作为二叉树数据结构还是简单的双向链表来实现。
如果我应该将其实现为二叉树,那么如何跟踪树的最后一个元素以便插入新元素呢? 在链表中这将更容易。
所以,二叉堆一定要是二叉树吗?如果是,如何跟踪最后一个元素?
注意:在我的任务中有这样一句话: 但你将实现二叉堆不是作为数组,而是作为树。 为了更清晰,这是我的节点:
如果我应该将其实现为二叉树,那么如何跟踪树的最后一个元素以便插入新元素呢? 在链表中这将更容易。
所以,二叉堆一定要是二叉树吗?如果是,如何跟踪最后一个元素?
注意:在我的任务中有这样一句话: 但你将实现二叉堆不是作为数组,而是作为树。 为了更清晰,这是我的节点:
struct Word{
char * word;
int count;
struct Word * parent;
struct Word * left_child;
struct Word * right_child;
}