在硬件中,我被要求使用指针来实现二叉树,然后使用bt的数组实现。问题是,尽管我知道怎么做,但它们必须共享相同的主文件。我的意思是,数组实现将使用与指针实现完全相同的代码。这意味着当我引用insertTree(tree,tree-> left)必须也适用于该数组时,.i完全丢失了。
我的节点是:

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

最佳答案

在“标准”情况下,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;

10-04 17:59