c语言链表程序设计
c语言链表程序设计
C语言程序设计实验报告
实验八、链表程序设计
【实验目的】
(1)掌握链表的概念、定义和使用;
(2)掌握链表中结点的建立、插入、删除方法;
【实验内容及步骤】
1、下列程序中,子函数insertup(head,newp)实现将一个newp所指新结点按升序插入到由头指针head所指的链表中的适当位置;请将函数补充完整,并编写主程序;
【程序代码】:
struct member
{int num;
struct member *next;
};
typedef struct member Member;
insertup(Member *head, Member *newp)
{Member *pre,*suc;
pre=head;
suc=head->next;
while (suc==NULL)
{if (suc->num >=newp->num)
{
pre->next=newp;
newp->next=suc;
return;
}
pre=suc;
suc=suc->next;
}
pre->next=newp;//当要插入的节点中的数据在链表中是最大值时,将它插入链表尾
newp->next=NULL;
}
1
c语言链表程序设计
void main()
{
Member
*head=(Member*)malloc(sizeof(Member)),node1,node2,node3,node4,*node; node1.num=4;
node2.num=6;
head->next=&node1;
node1.next=&node2;
node2.next=NULL;
printf("创建新链表:\n");
node=head->next;
while(node!=NULL)
{
printf("%5d\n",node->num);
node=node->next;
}
node3.num=1;//为新节点赋值
insertup(head,&node3);
printf("插入数据为%d的节点后,链表变为:\n",node3.num);
node=head->next;
while(node!=NULL)
{
printf("%5d\n",node->num);
node=node->next;
}
}
【运行结果】
分别为新节点node3的数据域赋值1,5,15。
2
c语言链表程序设计
2.25个人围成一个圈,从第1个人开始顺序报号,凡报号为3和3的倍数者退出圈子,找出最后留在圈子中的人原来的序号。
要求:用链表实现。报到3或3的倍数的结点删除;
提示:(1)需要将链表首尾相接形成环形;
(2)删除时注意头、尾结点的特殊处理;
(3)注意循环结束的条件;
【程序代码】
#include<stdlib.h>
#include <stdio.h>
#include <conio.h>
struct mod
{
int n;
struct mod *next;
};
int num(int count)
{
3
c语言链表程序设计
struct mod *head,*first;
head=first=(struct mod *)malloc(sizeof(struct mod));
for(int i=1;i<25;i++)
{
first->n=i;
first->next=(struct mod *)malloc(sizeof(struct mod));
first=first->next;
}
first->n=i;
first->next=head;
do
{
for (int j=1;j<3;++j)
{
first=head;
head = head->next;
}//每逢3都会删除轮到3的那个节点
first->next=head->next;
free(head);
head = first->next;
}while(first!=head);
i = head->n;
free(head);
return i;
}
void main()
{
int count,i;
printf("请输入人数:");
scanf("%d",&count);
i=num(count);
4
c语言链表程序设计
}
【运行结果】
printf("剩下的最后一个人的原来的号码是%d",i); printf("\n");
【实验心得与体会】
链表中节点的插入和删除时,要注意前后指针指向的变化,是先改变前一个指针指针域的指向还是先改变后一个指针指针域的指向。
写链表的节点插入和删除的函数时,要主要函数参数的应用,实参和形参的传递。
5
…… 此处隐藏:6字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [教学研究]2012西拉科学校团少队工作总结
- [教学研究]建筑工程公司档案管理制度
- [教学研究]小学数学人教版六年级上册圆的周长和面
- [教学研究]ERP电子行业解决方案
- [教学研究]钢支撑租赁合同范本
- [教学研究]预应力自动张拉系统用户手册Rev1.0
- [教学研究]MOOC课程:金瓶梅人物写真(每章节课后
- [教学研究]追加被执行人申请书(适用追加夫妻关系)
- [教学研究]2014年驾考科目一考试最新题库766
- [教学研究]2013-2014学年度九年级物理第15章《电
- [教学研究]新版中日交流标准日本语初级下26课-客
- [教学研究]小导管注浆施工作业指导书
- [教学研究]一般财务人员能力及人岗匹配评估表
- [教学研究]打1.2.页 小学一年级暑假口算100以内加
- [教学研究]学习贯彻《中国共产党党和国家机关基层
- [教学研究]2012年呼和浩特市中考试卷_35412
- [教学研究]最简易的电线电缆购销合同范本
- [教学研究]如何开展安全标准化建设
- [教学研究]工作分析与人岗匹配
- [教学研究]2016-2017学年高中历史第七单元现代中
- 山东省义务教育必修地方课程小学三年级
- 台湾宜兰大学互联网交换技术课程 01_In
- 思想品德:第一课《我知我家》课件(人
- SAR合成孔径雷达图像点目标仿真报告(附
- 利辛县“十三五”规划研究报告
- 2015-2020年中国手机APP行业市场发展趋
- 广告策略、创意表现、媒体方案
- 企业如何申请专利的的几点思考
- 《中国教育简史》网上作业
- 高中历史第二单元西方人文精神的起源及
- 年终晚会必备_精彩的主持稿_精心整理_
- 信息工程专业自荐书
- 2019高考历史人教版一轮练习:第十二单
- JAVA俱乐部管理系统软件需求规格说明书
- 2016-2021年中国小型板料折弯机行业市
- (人教新课标)六上_比的基本性质课件PPT
- 辽宁省公务员考试网申论备考技巧:名言
- 神经阻滞麻醉知情同意书
- 施工企业信息填报、审核和发布的相关事
- 初一(七年级)英语完形填空100篇




