qq_39501001 2020-07-04 18:22 采纳率: 0%
浏览 86
已采纳

链表创建结构的问题!!!!!!

图片说明

typedef struct student
{
int score;

struct student next; //创建一个链表,包含数据和指针
} LinkList;
//创建一个列表
LinkList *CreateList(int n)

{

int i;
LinkList *head,*node,*end; //定义一个头结点
head=(LinkList
)malloc(sizeof(LinkList)); //给头结点申请内存
end=head; //
end->next=NULL; //链表最后一个结点的指针为空

for(i=0;i<n;i++) //循环创建链表
{

  node=(LinkList*)malloc(sizeof(LinkList));
  node->score=i;                            //给结点数据赋值 
  end->next=node;
   printf("第 %d 个节点的数值:%d\n",i,node->score);
  node->next=NULL;
  end=node;

}
return head;
}

int main()
{
LinkList *phead;
phead=CreateList(3);
}

  • 写回答

1条回答 默认 最新

  • SFAfreshman 2020-07-04 23:47
    关注

    循环创建链表时的node是一个孤立的新申请空间的指针
    node->score=i; 是给这个新的孤立的指针赋值

    end->next=node;是把链表里最后一块空间和这个新申请的空间(指针)连接起来

    node->next=NULL;是把这个指针的next域初始化置为空,前面已经把指针的score数据赋值过了
    然后node的数据域和next都初始化有值之后,node已经被链接到链表上了,成为链表最后一个元素
    然后end=node;
    即更新end让它指向链表最后一个元素

    帮到你的话采纳一下

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线