【发布时间】:2018-02-22 00:06:41
【问题描述】:
我的 c 课程作业是将菜单实现为 n 叉树。我必须创建一个struct,用数据填充它并打印数据。
尽管创建结构和填充相对容易,但我发现打印的困难。我的目标是以这种方式打印结构:
1 File
1.1 Open
1.2 Save As
1.3 Save as Other
1.3.1 Text
1.3.2 Word or Excel Online
1.4 Send File
1.4.1 Attach to Email
1.4.2 Send & Track
1.5 Close
我的挣扎是我找不到如何: a) 在每个孩子之后添加空格。 b) 为孩子的每个孩子添加数字。
我的结构是这样的:
typedef struct node
{
long nodeID;
long parentNodeID;
char name[100];
struct node *next;
struct node *child;
} node;
我的失败尝试:
void printMenu(node* root){
if(root == NULL) {
fprintf(stderr, "Root has not been initialised");
exit(1);
}
if(root->parentNodeID == 0){
printf("%ld %s",root -> nodeID,root -> name);
fflush(stdout);
printMenu(root->child);
}
if(root->child){
printf("%6ld.%ld %s",root->parentNodeID,root->nodeID - 1,root->name);
fflush(stdout);
printMenu(root->child);
}
printf("%5ld.%ld %s",root->parentNodeID,root->nodeID - 1,root->name);
fflush(stdout);
printMenu(root -> next);
}
请发送帮助:(
【问题讨论】:
-
请提供MCVE。
标签: c