完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
链表有有头链表和无头链表
无头链表:所有的节点都包含了有效数据。 有头链表:用一个固定的头节点来指代整个链表,所有的对象挂在这个头节点下面,而头节点本身不包含有效数据。 今天学习在有头链表下插入节点,插入节点的方式有从头部插入和从尾部插入,从头部插入思路就是将头部的节点地址复制给插入数据的节点地址,然后将头部节点地址指向插入数据的地址。 程序实现方法: #include #include struct st { int a; struct st *next; }; struct st d={0}; void add1(struct st* asj ); void add1(struct st * asj ) { asj->next=d.next; d.next=asj; } void main() { struct st* obj_1 = (struct st*)malloc (sizeof(struct st)); struct st* obj_2 = (struct st*)malloc (sizeof(struct st)); obj_1->a=0; add1(obj_1); printf("d=%dn",&(d)); printf("d.a=%dn",&(d.a)); printf("d.next=%dn",&(d.next)); printf("next=%dn",d.next); printf("obj_1.a=%dn",&(obj_1->a)); printf("obj_1.next=%dn",&(obj_1->next)); printf("next=%dn",obj_1->next); obj_2->a=0; add1(obj_2 ); printf("obj_2.a=%dn",&(obj_2->a)); printf("obj_2.next=%dn",&(obj_2->next)); printf("obj_2.next=%dn",obj_2->next); } 运行结果为: 从结果可以发现obj_1为最后一个节点,而后面插入的数据地址放到了obj_1的前面,而obj_2的节点地址指向了obj_1,这就是从首地址插入的方法。 从尾部插入的方法是首先遍历下链表找到最后一个元素,让最后元素的节点指向要插入的数据,要插入的数据节点为0; 程序: #include #include struct st { int a; struct st *next; }; struct st d={0}; void add2(struct st * a*** ); void add2(struct st * a*** ) { struct st *p=&d; while(p->next) p=p->next; p->next=a***; a***->next=0; } void main() { struct st* obj_1 = (struct st*)malloc (sizeof(struct st)); struct st* obj_2 = (struct st*)malloc (sizeof(struct st)); obj_1->a=0; add2(obj_1); printf("d=%dn",&(d)); printf("d.a=%dn",&(d.a)); printf("d.next=%dn",&(d.next)); printf("next=%dn",d.next); printf("obj_1.a=%dn",&(obj_1->a)); printf("obj_1.next=%dn",&(obj_1->next)); printf("next=%dn",obj_1->next); obj_2->a=0; add2(obj_2 ); printf("obj_2.a=%dn",&(obj_2->a)); printf("obj_2.next=%dn",&(obj_2->next)); printf("obj_2.next=%dn",obj_2->next); } 结果为: 可见每次插入的数据下个节点总是指向了最后,而他们的内存是连续的。
|
|
相关推荐
1 个讨论
|
|
此帖仅作者可见
|
|
|
|
|
|
谁知道这个16脚的芯片是什么型号2-15脚输出的互补的450KHZ方波电流达到200MA
428 浏览 0 评论
566 浏览 0 评论
1243 浏览 0 评论
1114 浏览 0 评论
开源项目!基于Arduino做的“鱿鱼游戏”BOSS面具,支持动作检测
676 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 15:35 , Processed in 0.420151 second(s), Total 43, Slave 31 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号