有序遍历的定义

时间:2016-12-25 19:41:20

标签: c data-structures tree binary-tree inorder

Tree抽象中,当前正在编写(作为代码实践),

/************ tree.h *********************/

.....

/****************** Usage-start ************/
#if defined(LCRS)

  typedef struct LCRSTree Tree;

#elif defined(MULTI_WALK)

  typedef struct multiWalkTree Tree;

#elif defined(BINARY_TREE)

  typedef struct BinaryTree Tree;

#else

    #error "Invalid representation\n"

#endif

  .....

typedef void(*visitFunc)(void *);

Tree * newTree(void);
bool destroyTree(Tree *);
 ...
void preOrderTraversal(Tree*, visitFunc);
void postOrderTraversal(Tree *, visitFunc);
void breadthFirstTraversal(Tree *, visitFunc);

void inOrderTraversal(struct BinaryTree *, visitFunc);
.....

#endif  /* TREE_H */
/**************** Usage-end ******************/

inOrderTraversal()被声明为,

void inOrderTraversal(struct BinaryTree *, visitFunc);

这意味着,inOrderTraversal接受二叉树而不是N-ary树(N> 2),不同于前,后,广度的首次遍历。

理念受到这个answer的启发,其中说:有序遍历是一种特殊情况。它可能只对二叉树有意义。

问题:

在最终更改代码之前,请确认我对上述代码中inOrderTraversal()的使用情况的理解。

0 个答案:

没有答案