链表的实质
串联起来的对象
名词解释
链表头:第一个对象
链表尾;最后一个对象
链表的作用
一次性访问多个对象
如何使用链表
①创建结构体
struct Student{
int id;
char name[12];
Student* next;
};
②创建结构体变量
Student ss[4] =
{
{201501,"zwq1",0},
{201502,"zwq2",0},
{201503,"zwq3",0},
{201504,"no",0}
};
③创建链表
ss[0].next=&ss[1];
ss[1].next=&ss[2];
ss[2].next=&ss[3];
ss[3].next=0;
④遍历链表
Student* p=&ss[0];
while(p){
printf("id=%d,name=%s\n",p->id,p->name);
p=p->next;
}
具体案例:按照id找某个学生
#include <stdio.h>
struct Student{
int id;
char name[12];
Student* next;
};
Student ss[4] =
{
{201501,"zwq1",0},
{201502,"zwq2",0},
{201503,"zwq3",0},
{201504,"no",0}
};
Student* find(int id){
Student* s=0;
Student* p=&ss[0];
while(p){
if((p->id)==id){
s=p;
}
p=p->next;
}
return s;
}
int main(){
ss[0].next=&ss[1];
ss[1].next=&ss[2];
ss[2].next=&ss[3];
ss[3].next=0;
Student* s=find(201508);
if(s!=0){
printf("id=%d,name=%s\n",s->id,s->name);
}
else{
printf("没有相应数据\n");
}
return 0;
}
学习体会:一开始很不解为啥要用指针,现在有点懂了,指针确实很好用!!