为什么一些二叉树遍历函数采用双指针?

时间:2017-10-16 13:21:51

标签: c pointers binary-tree traversal inorder

我正在阅读有关树和3个遍历函数的可能实现(来自:使用C和C ++的数据结构)。 Node结构是:

struct node
{
    int info;
    node* left;
    node* right;
}node;

typedef struct node * nodeptr ;

Preorder遍历的实现采用了类型为node的简单指针:

void preorder(node *root);

但是当涉及到Inorder函数时,它被声明为:

void inorder(nodeptr *root)

如果我没有弄错,而且我在网上查了一下,在这种情况下,nodeptr *意味着**节点对吗? 如果是这种情况,为什么我们为遍历函数声明一个类型为node的双指针?

另一件事,

inorder(root→left);

如果root是类型node的双指针,我们是否可以实际写root-> left来访问它指向的节点的属性? (好像它是一个简单的指针)?

编辑:我只是复制书中所写的内容以及课堂上的内容。我只是很难理解为什么,这就是全部。

0 个答案:

没有答案