gpt4 book ai didi

c - 测试链表

转载 作者:太空宇宙 更新时间:2023-11-04 06:53:31 25 4
gpt4 key购买 nike

个人学习在看Skiena的《算法设计手册》,正在尝试用C实现链表。

如何使用 insert_list() 函数然后打印出我的列表来验证值?

/* definition of linked list */
typedef struct list {
int item;
struct list *next;
} list;
/* insert item into list */
void insert_list(list **l, int x) {
list *p;
p = malloc(sizeof(list));
p->item = x;
p->next = *l;
*l = p;
}

我写了一个 main 函数来尝试弄清楚如何使用 insert_list():

int main(void) {
struct list *root;
struct list *traverse;
root = (struct list *)malloc(sizeof(struct list));
root->next = 0;
root->item = 5;
traverse = root;
insert_list(traverse, 1); /* this is the problem */
printf("%d\n", root->item);
}

我在用 gcc 编译时收到一个错误:应为 'struct list **' 但参数类型为 'struct list *

如何正确使用此功能将项目插入并打印我的列表?如果没有 insert_list() 调用,它会按预期将 root->item 打印为 5。

最佳答案

你有一个很好的功能。现在:使用它。


int main(void) {
// You have a typedef, so you should omit the struct keyword
/*struct */ list *root= NULL, *p;

insert_list(&root, 5);
insert_list(&root, 1);

for (p=root; p; p=p->next){
printf("%d\n", p->item);
}

return 0;
}

关于c - 测试链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47972158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com