我有一个链表,最后想把它打印出来。我的问题是,如果结构中的链表变量保持不变并且没有添加到列表中,如果我尝试使用 while(school->list!= NULL)
打印,这会起作用吗?
注意:我在任何时候都没有将列表设为空,我只是分配了名称,没有触及列表。
struct School{
char *name;
Student *list; <--- Linked list
} School;
struct Student{
char *name;
Student *next;
} Student;
现在,如果我想打印此列表,这会起作用吗?
编辑:我(school->student != NULL)
更改为(school->list != NULL)
请参阅此示例以打印列表:
#include <stdio.h>
#include <stdlib.h>
struct test{
int code;
struct test *next;
};
void pri(struct test *); // As you dont whant to change the values of list.
void cre(struct test **);// This put list at the start
int main(void){
struct test *head;
head = NULL; // you start from null.
cre(&head,5);
cre(&head,10);
pri(head);
return 0;
}
void cre(struct test **head,int x){
struct test *tmp;
tmp = malloc(sizeof(struct test));
tmp->code = x;
tmp->next = (*head);
(*head) = tmp;
}
void pri(struct test *head){
while(head){ // while we dont reach end of list.
printf("%d ",head->code);
head = head->next; // Go to our next element
}
printf("n");
}
我希望这个程序能帮助你打印列表。如果我们在末尾等列表中插入一个元素,这当然有效。在你的论文上画画,以更好地理解列表。