链表:数据结构,一堆数据的集合,链表的每一项都是结构体,都使用指针指向下一个结构体。
数组的缺点:由于数组的地址是连续的,对数组的数据进行增、删、改后数据不连续,需要较大的运算量才能实现。
链表的定义:
链表通过指针使不连续的数据产生联系,t1又叫做链表头,相当于数组的首地址
- #include
-
- struct Test
- {
- int data;
- struct Test *next; //指针类型与结构体匹配
- };
-
- int main(){
- int i;
-
- int arry[]={1,2,3};
- for(i=0;i<sizeof(arry)/sizeof(arry[0]);i++){
- printf("%d ",arry[i]);
- }
- putchar('\n');
-
- struct Test t1 = {1,NULL};
- struct Test t2 = {2,NULL};
- struct Test t3 = {3,NULL};
-
- t1.next = &t2;
- t2.next = &t3;
- printf("use link to print data\n");
- printf("%d %d %d\n",t1.data,t1.next->data,t1.next->next->data);
- return 0;
- }
输出结果:
- use link to print data
- 1 2 3