自定义函数c语言和商差积,c语言 creatlist 自定义函数求理解

满意答案

dcebd7a0de6265b6ccae5ead692f1eab.png

jackykitty

2019.09.10

dcebd7a0de6265b6ccae5ead692f1eab.png

采纳率:46%    等级:12

已帮助:5859人

struct list *createlist(int data[], int n)

{

//输入一个数组,n是数组的大小,返回一个内容相同的链表

struct list *head = 0, *p, *q;//head:链表头

int i;

head = (struct list *) malloc(sizeof(struct list));//建立链表头,分配空间

head->data = data[0];//往链表头填入数据data[0]

p = q = head;//这些是循环变量,p先走,q跟着,俩人从链表头一直走到链表尾

//每次循环,p和q一开始指向链表末尾的节点上。 p先走,malloc函数改变了他的值,他指向了一块新的内存空间,就是新的节点;然后q->next=p把新连起来;然后 q跟上p的步伐,q=p,相当于二者又站在了末尾的节点上。

for(i=1; i

{

p = (struct list *) malloc(sizeof(struct list));//p变成一个新的节点,给p分配空间(注意p的值被改写了,它不再是head,而是一个新的值,就是下一个节点)

p->data = data[i];//p装入数据,第一次循环它装入的是data[1],也就是紧跟着head的那个

q->next = p;//第一次循环q是head,以后每次都是q落后p一个格子。

//第一次循环相当于head->next=p,把第1个节点放在第0个节点后面。

q = p;

//第一次循环q=p,q追上p的脚步,离开head(第0

//第二次循环q=p,p又变成新的节点,相当于把第2个节点(p)放在第一个节点后面

}

p->next = NULL;//封锁野指针

return head;

}

不懂欢迎追问

00分享举报

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值