我做了一个只有根的树结构。然后,由用户决定是否创建节点,并将它们作为子节点添加到根节点或其他现有节点。下面是结构的外观:C:如何将节点添加到循环中的树中?
#define MAXCHILDREN 5 //max children a node can have
typedef struct node{
unsigned int id;
struct node* parent;
struct node* children[MAXCHILDREN];
}node;
typedef struct spantree{
node root;
}spantree;
现在我想实现的目标就是说4个节点并将它们作为子节点添加到根节点。下面是我做了什么不正常工作:
for (i=0; i<4; i++){
node newNode;
newNode.id=i;
addChild(&newNode, &Root);
}
这不,当我运行
showChildId(0,&根)的工作; //其中第一个数字表示的第一个孩子,第二个孩子等
showChildId(1,&根);
等
我得到这意味着只有一个孩子添加相同的ID。所以,我怎么去在一个循环做4个不同节点并将其添加到父(在这种情况下根)?
我在该级别的算法中看不到任何错误,您是否可以提供其他函数的实现? – Alexis 2011-03-21 10:37:44
@Alexis:不需要。该错误包含在该代码中。 – GrahamS 2011-03-21 10:45:30
@Alexis我尝试尽可能地简化它。这里是一个示例准备运行http://pastebin.com/290ABdmt – Pithikos 2011-03-21 10:57:24