初学链表之单向链表创建
链表是由一个个节点构成的,而每一个节点都可以看成两个部分组成,分别是数据域和指针域,链表是由不是连续的地址空间组成的非线性存储结构,字面意思,他们不是一个连串的地址空间,那么我们想让他们能被顺序访问,就得用指针来分别访问他们的地址空间,这就是指针域的功能
创建结构体类型
typedef struct Link{
int data;
struct Link *next;
}link;
现在初始化一个链表,里面是1-10的数值
link *newlink(){
link *head,*end;
head=end=(link*)malloc(sizeof(link));
int i;
for(i=1;i<10;i++){
link *a=(link*)malloc(sizeof(link));
a->data=i;
a->next=NULL;
end->next=a;
end=a;
}
return head;
}
输入语句可以写循环,也可以用一个函数来实现
void display(link *p){
link *end =p;//让end指向头节点
while(end->next){
end=end->next;
printf("%d ",end->data);
}
}
最后在主函数里面这样来实现
int main(){
link *p=newlink();
display(p);
return 0;
}
详情注释明天来补