0

在硬件中,我被要求使用指针实现二叉树,然后使用 bt 的数组实现。问题是,虽然我知道如何做到这两点,但它们必须共享同一个主文件。我的意思是,我用于指针实现的完全相同的代码将被数组实现使用。这意味着当我引用 insertTree(tree,tree->left) 时,它也必须适用于数组。我完全迷失了。我的节点是:

    Typedef  struct BTNode{
     itemtype data;
      Struct BTNode * left;
     Struct BTNode * left;
    }BTNode;
4

1 回答 1

1

在“标准”情况下, malloc的结果支持一个新单元格,当它变得无用时,你释放

使用数组可以拥有一个BTNode数组,而不是malloc一个新单元格,您可以在数组中获得一个免费条目。因为可以以任何顺序先验地获取/释放单元格,所以您也可以链接空闲单元格,因此当释放单元格时,它会重新引入与数组关联的空闲列表中

所以只有malloc/free调用必须修改才能使用数组


笔记 :

Typedef  struct BTNode{
     itemtype data;
      Struct BTNode * left;
     Struct BTNode * left;
    }BTNode;

你的意思是

typedef  struct BTNode{
   itemtype data;
   struct BTNode * left;
   struct BTNode * right;
} BTNode;
于 2019-04-22T12:10:41.323 回答