嵌入式学习-链表
链表是一种数据结构,它相对于数组来说十分灵活,它存放着一个数据和指向下一个数据的地址(指针)。
链表和数组的区别在于,数组是连续的,而链表可以是不连续的。
输出结果:
上面是一个简易版本的链表实例。
Test结构体存放着数据和下一个Test结构体的地址,然后初始化三个Test结构体实例,让第一个存放着第二个Test结构体的地址,第二个存放第三个结构体的地址,第三个结构体指向的地址为空,
然后通过第一个结构体打印三个结构体的数据。
#include<stdio.h> struct Test { int data; struct Test * next; }; void printfLink(struct Test *head) { while(head!=NULL) { printf("%d\n",head->data); head=head->next; } } int main() { struct Test t1={1,NULL}; struct Test t2={2,NULL}; struct Test t3={3,NULL}; t1.next=&t2; t2.next=&t3; printf("use t1 printf data\n"); // printf("%d%d%d\n",t1.data,t1.next->data,t1.next->next->data); printfLink(&t1); return 0; }
上面的代码可以实现动态打印l链表数据。
输出结果:
1
2
3
4556