1.其实链表就是多个相同的结构体连在一起的而已,用数组来类比一下即可,数组的所有数据的地址连续的,而链表却不是,而链表不同结点的地址是可以连续的也可以是不连续的,数组想减少或添加一个数据很艰难,而链表恰恰相反,链表是一个很灵活的东西。
链表无非就是四样东西:增删改查
2.现在我们来进行一个链表的静态创建
其实静态创建是很麻烦的,但对于学习有很好的理解帮助
struct Test
{
int data;
struct Test* next; //定义一个指针指向自己
};
静态创建与打印
struct Test t1 = {
1,NULL};
struct Test t2 = {
2,NULL};
struct Test t3 = {
3,NULL};
struct Test t4 = {
4,NULL};
struct Test t5 = {
5,NULL};
//这时候链表的几个数据是没有任何联系的
//这种是静态创建的,很low的
t1.next = &t2;
t2.next = &t3;
t3.next = &t4;
t4.next = &t5;
//这时候把他们的地址域互相联系起来了才有关联
printf("the data of the linklist is:%d %d %d %d %d\n",t1.data,t1.next->data,
t1.next->next->data,t1.next->next->next->data,t1.next->next->next->next->data);
这样创建链表是基本没什么意义的,但是对于学习有很好的理解
用函数封装来进行对链表的操作:<