这是代码目录结构,
$ 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树上实现哪些重要(常见)操作?
您能提供这些操作的签名(功能声明)吗?
注意 - 这有助于我继续实施