ch2_线性表_链表及其初始化 发表于 2019-03-01 | 分类于 数据结构与算法的上机代码实现 | 阅读次数: 1234567891011121314151617181920212223242526272829303132333435363738394041424344#include <stdio.h>#include <stdlib.h>//链表的结构体定义typedef struct Link{ int elem; struct Link *next;}link;//链表初始化函数link *initLink(){ //先搞个头结点粗来 link *p=(link*)malloc(sizeof(link)); //再弄个工作指针,初始指向头结点p link *temp=p; for(int i=1;i<5;++i){ //想初始化,得有原料,那就是一个一个的节点,现在还没有节点,那先搞一个粗来 link *a=(link*)malloc(sizeof(link)); //光有空壳不够,该赋值了(对link结构体中的elem赋值) a->elem=i; //有了原料节点,就用一根绳子把它们串起来(对link结构体中的next指针赋地址值) temp->next=a;//串起来啦 temp=a;//工作指针temp后移,准备迎接下一个节点的到来 }printf("\n");//为了颜值和正义而生//串完之后,原来的头结点p身后就有了一大堆节点return p;//return试试看}//打印初始化好的链表元素函数void display(link *p){ link *x=p;//x初始指向头结点 while(x->next){ x=x->next; printf("%d",x->elem); }printf("\n");}void main(){ //初始化链表(1,2,3,4) printf("初始化链表为:\n"); link *p=initLink(); display(p);} 喜欢所以热爱,坚持干货分享,欢迎订阅我的微信公众号 呐,请我吃辣条 打赏 微信支付 支付宝