【发布时间】:2014-07-24 22:32:29
【问题描述】:
我最近实现了二叉搜索树、链表等作为学习练习。 II 实现了几个 API,如插入、删除等。 例如,插入节点 API 看起来像
void insertNode(Node** root, Node* node)
应用程序将为要插入的节点分配内存。即节点并分配值/键并传递给此函数。
1) 我的问题是这是否是正确的方法?还是应用程序只需要将值/键传递给 insertNode 函数,然后这个函数分配内存?
i.e void insertNode(Node** root, int key)
{
malloc for node here
}
2) 什么是好的设计实践——应用程序处理分配内存和空闲还是这个 API 库?
谢谢
【问题讨论】:
-
为什么 root 是一个节点**?你修改根目录吗?
-
这个想法是在根目录中添加新节点并从中删除。所以这种方式根被修改。所以我想传递一个参考。
标签: c binary-search-tree