我正在编写一个C程序来保存公司中经理和员工的数据。
该结构是一个多级链接列表。 每个经理可以包含内部经理和员工。
这是结构
typedef struct Node {
char* name;
NODE* next;
NODE* down;
NODE* parent;
int is_manager;
} NODE;
在我的程序中,我想遍历结构,以便我可以找到特定的员工,向他们添加数据,删除他们等。
添加/删除功能很简单-但是我在如何遍历和搜索此结构方面陷入困境。
在此先感谢您的帮助。
答案 0 :(得分:1)
扩展我的示例:
void print_node(NODE *node)
{
// Tread node as the head of a list, and iterate over that list the "normal" way
while (node)
{
// But also go down the "tree"...
if (node->down)
{
print_node(node->down);
}
// Print the name
printf("%s ", node->name);
// And go to the next node in the list
node = node->next;
}
}
在遵循the advice by jdweng之后,您应该不难发现这一点。使用笔和纸将其全部绘制出来,然后按照“手动”方式打印该树。