操作列表 - 根树

时间:2016-12-21 05:58:11

标签: c data-structures tree

这是代码目录结构,

$ ls
lcrsImpl.c  multiWalkImpl.c  tree.h

对于以下两个有根树的表示,

#include"../../list/list.h"

#if defined(LCRS)
  typedef struct SiblingTreeNode{
    struct SiblingTreeNode *parent;
    void *item;
    struct SiblingTreeNode *firstChild;
    struct SiblingTreeNode *nextSibling;
  }Node;

  typedef struct LCRSTree{
    Node *root;
    int size;
  }Tree;

#elif defined(MULTI_WALK)
   typedef struct treeNode{
    struct treeNode *parent;
    void *item
    List **childList;
  }Node;

  typedef struct multiWalkTree{
    Node *root;
    int size
  }Tree;
#else
  #error "Wrong representation "
#endif

Tree抽象可以被其他抽象重用。

问题:

使用两个表示(如上所述)编写Tree抽象,

根据现实世界的经验,需要在root树上实现哪些重要(常见)操作?

您能提供这些操作的签名(功能声明)吗?

注意 - 这有助于我继续实施

0 个答案:

没有答案