首页 > 解决方案 > 如何漂亮地打印嵌套链表

问题描述

有一个这样的结构:

struct a{
  char name[10];
  struct a* child;
  struct a* friend;
};

并且有许多具有这种结构的对象,它们以孩子和朋友的形式联系在一起

所以如果我知道第一个地址,我可以访问所有这些

第一个对象是这样的:

struct a start;

我将在这些对象生成后立即设置它们中的所有值

因此,如果他们没有孩子或朋友,他们的孩子和朋友的成员变量将为零

我想像这样打印所有这些对象:

a
└ aa
  └ aaa
  │  └ aaaa
  ab
  ac
  └ aca
    acb
    acc

我真的很抱歉这幅糟糕的图画

a和的名字也是和start的孩子aa 的名字start,是的朋友。像这样的东西。abacaa

我知道如何打印那些特殊字符

问题是对象是在运行时确定的

所以我需要一个算法来打印这样的:

void print(struct a* b)
{
    if(b)
    {
        printf(”%s\n”, b->name);
        print(b->child);
        print(b->friend);
    }
}

但这远不是我想要的

我真的不知道该怎么做

可能吗?如果不是,我想获得一些关于如何漂亮地打印这种结构的帮助

标签: calgorithmprintf

解决方案



推荐阅读