我知道如何创建具有两个结构的链表
为此,我声明一个包含所有必要数据的结构。它看起来像这样:
struct Data{
int numb;
int date;
}
第二个结构表示一个节点,该节点具有头(即列表的第一个元素)和到下一个节点的链接。
struct llist{
Data d;
llist *next;
}
我想知道如果我想将我的列表添加到另一个代表列表的结构中该怎么办。
struct mainList{
llist l;
}
我知道这可能会造成一些困难,因为我不太确定如何将主列表传递给函数。
在这里,我尝试打印链接列表
void show(mainlist *ml){
llist *u = ml->l;
while(u){
printf("Date: %s\t Name: %s\n", u->d.dat, u->d.uname/* u->d.dat, u->d.uname*/);
u=u->next;
}
}
但出现错误,指出“我无法在初始化中将 'llist' 'llist' 到 'llist*'” 所以,我在这里一无所知......有什么想法吗?
最佳答案
有很多问题 - 但是,与您所指的错误相关的一个问题是以下行:
llist *u = ml->l; /* I guess you mean struct llist *u = ml->l */
在show
函数中。这里 u
是一个 struct llist *
,但 ml->l
是一个 struct llist
,但不是指针到它。您需要将 struct mainList
更改为:
struct mainList{
struct llist *l;
}
因此 ml->l
是一个 struct llist *
。
关于c - 将由三个结构组成的链表传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38284280/