如果链表中得变量多了怎么办?
struct Test t1 = {1,NULL};
struct Test t2 = {2,NULL};
struct Test t3 = {3,NULL};
struct Test t4 = {4,NULL};
t1.next = &t2;
t2.next = &t3;
t3.next = &t4;
那就不能用这种办法了。
printf("%d %d %d %d\n",t1.data,t1.next->data,t1.next->next->data,t1.next->next->next->data);
我们可以用函数遍历。
void printLink(struct Test *head)
{
while(head != NULL){
if(head != NULL){
printf("%d\n",head->data);
head = head->next;
}else{
break;
}
}
return ;
}
整篇代码
#include <stdio.h>
struct Test
{
int data;
struct Test *next;
};
void printLink(struct Test *head)
{
while(head != NULL){
if(head != NULL){
printf("%d\n",head->data);
head = head->next;
}else{
break;
}
}
return ;
}
int main()
{
int i;
int array[3] = {1,2,3};
for(i=0;i<sizeof(array)/sizeof(array[0]);i++){
printf("%d\n",array[i]);
}
struct Test t1 = {1,NULL};
struct Test t2 = {2,NULL};
struct Test t3 = {3,NULL};
struct Test t4 = {4,NULL};
t1.next = &t2;
t2.next = &t3;
t3.next = &t4;
printf("=====use t1 print three num=====\n");
// printf("%d %d %d %d\n",t1.data,t1.next->data,t1.next->next->data,t1.next->next->next->data);
printLink(&t1);
return 0;
}