数据结构第一次实验报告
更新时间:2023-11-16 00:04:01 阅读量: 教育文库 文档下载
实验一链式结构综合设计姓名:段胜磊学号:20140404305
实验一链式结构综合设计
班级: 信科1403班
姓名:
段胜磊
学号: 20140404305
一、实验目标
本实验通过定义单向链表的数据结构,设计创建链表、插入结点、遍历结点等基本算法,使学生掌握线性链表的基本特征和算法,并能熟练编写C程序,培养理论联系实际和自主学习的能力,提高程序设计水平。 二、实验内容
设计一个职工信息查询系统。每个职工的信息包括,职工号,姓名,所属部门号,月薪。 (1)建立一个职工信息的单链表L。
(2)在单链表L中查找职工号为t的职工信息,并输出。 (3)在单链表L中删除职工号为t的职工信息。 (4)输出单链表L中所有的节点 三、数据结构的设计
由于职工信息在逻辑结构上是线性的,将其建立为链式结构既使得职工信息的增加可以是动态的,也使得其删除过程容易实现。 具体节点类型定义如下: Typedefstructelem
{int no; /职工号 Char name[20]; /职工姓名 Intdepno; /所属部门号 Int salary; /月薪 }elemtype
Typedefstruct node
{elemtype data; /职工信息域 struct node *next; /链域 }Lnode
节点的示例图: Data域 Next 域
职工号 ---------> 职工姓名 所属部门号 月薪 四、各功能函数的设计
(1)建立链表函数Lnode *new(void)
功能:该函数实现建立一个含有头节点的链表。 具体过程:
1)建立一个含有头节点的空链表L。 2)输入一个新的职工信息。如为非法信息则建立链表过程结束执行6),否则继续3)。 3)建立一个新节点p,并将输入的信息记录在节点p的data域。 4)将节点p跟在链表L的头节点之后。 5)继续2)
6)返回链表的头指针。
(2)查找职工号为t的职工信息函数Lnode *find(Lnode *L, int t)
(共6页第1页)
实验一链式结构综合设计姓名:段胜磊学号:20140404305
功能:该函数实现在含有头节点的链表L上查找职工号为t的职工信息,找到则返回该节点的指针,否则返回NULL。 具体过程:
1)建立一个新节点,并且定义一个t作为要查找的职工号。然后把头结点的next域赋值给p节点。
2)接着判断p节点指向的链表是否为NULL。
3)如果p节点指向的链表不为空,则判断节点p中的职工号是否为t职工号,如果不是则p节点指向它的下一个域。 4) 返回节点p。
(3)删除职工号为t的职工信息函数int del(Lnode *L, int t)
功能:该函数实现在一个含有头节点的链表L上删除职工号为t的职工信息,删除成功则返回1,否则返回0。 具体过程:
1)建立两个新节点p和q,然后把该链表的头结点赋值给节点p。 2)判断节点p的下一个域是否为空。 3) 如果节点p的下一个域为空,则返回0;否则,把节点p的下一个域赋值给节点q,接着节点q的下一个域赋值给节点p的下一个域。 4)返回1
(4)输出职工信息函数 void out(Lnode *p)
功能:该函数实现输出p所指节点的职工信息。 具体过程:
1)建立一个新的节点p。 2)判断p是否为空。
3)如果p不为空,则分别输出职工信息。 4)然后使节点p指向节点P的下一个域。 五、实验结果及分析 实验结果:
结果分析:这是开始分别录入了三个职工的信息;
(共6页第2页)
实验一链式结构综合设计姓名:段胜磊学号:20140404305
结果分析:这是重新把刚才录入的所有职工信息的都输出来;
结果分析:(1)首先我们查找了职工号为222的职工信息; (2)然后接着删除职工号为222的职工信息; (3)最后输出了职工信息。 六、源代码
#include
{ int no; //职工号 char name[20]; //职工姓名 intdepno; //所属部门号 int salary; //月薪 }elemtype;
typedefstruct node
{ elemtype data; //职工信息域 struct node *next; //链域 }Lnode;
Lnode *new() { Lnode *head,*p1;
6页第3页)
(共实验一链式结构综合设计姓名:段胜磊学号:20140404305
int n=3,k;
head=(Lnode *)malloc(sizeof(Lnode)); head -> next = NULL; for(k=1;k<=n;k++) { p1=(Lnode *)malloc(sizeof(Lnode)); printf(\请输入一个职工号(三位数):\\n\ scanf(\ printf(\请输入一个职工的姓名:\\n\ scanf(\
printf(\请输入该职工所属部门号(两位数):\\n\
scanf(\
printf(\请输入该职工的月薪:\\n\ scanf(\ p1 -> next = head -> next; head -> next = p1; } return(head); }
void out(Lnode *head) { Lnode *p; p=head -> next; while(p!=NULL) {
printf(\该职工的职工号:%d\\n\ printf(\该职工的姓名:%s\\n\ printf(\该职工的所属部门号:%d\\n\ printf(\该职工的月薪:%d\\n\ p=p->next; } }
Lnode *find(Lnode *head,int t) { Lnode *p; p=head -> next; while(p!=NULL) { if(p -> data.no == t) break; else p=p -> next; }
6页第4页)
(共实验一链式结构综合设计姓名:段胜磊学号:20140404305
return(p); }
int del(Lnode *head,int t) { Lnode *p,*q; p=head; while(p -> next!=NULL) { if(p -> next -> data.no == t) break; else p=p -> next; } if(p -> next == NULL) return (0); else { q=p -> next; p -> next=q -> next; free(q); return(1); } }
void main() { Lnode *L,*q; int x; int k; L=new(); out(L); printf(\请输入你要查找的职工号(三位数):\\n\ scanf(\ q=find(L,k); if(q == NULL) printf(\没有找到该职工的信息\ else printf(\找到该职工的信息为:\\n\ printf(\该职工的职工号:%d\\n\ printf(\该职工的姓名:%s\\n\ printf(\该职工的所属部门号:%d\\n\ printf(\该职工的月薪:%d\\n\
x=del(L,k);
6页第5页)
(共实验一链式结构综合设计姓名:段胜磊学号:20140404305
if(x == 0)
printf(\没有删除该职工的信息\\n\ else printf(\已删除该职工的信息\\n\out(L); }
(共6页第6页)
正在阅读:
数据结构第一次实验报告11-16
我国高速公路的信息化管理12-18
食品加工学(1)课程知识要点(1)07-11
贵州2015年企业法律顾问:行政处罚的概念、特征考试试卷09-04
经典诵读促进学生语文素养提高的实践研究09-11
全自动洗衣机的工作原理及构造12-29
网点特色化经营与主题银行打造 (2)04-29
模板方案04-09
国际经济学习题201104-29
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 数据结构
- 第一次
- 实验
- 报告
- 关于公司电器设备设施使用管理的规定(修改稿)
- 排球各项技术的训练方法
- 地下停车位转让协议书(范本)
- 文言文常用实词简默写表
- 鄂教版小学语文六年级下册期末复习(七)第六单元课内阅读复习
- 挂职干部工作总结
- 亚龙YL--335B(所有单元程序) -
- 目的 探讨抗病毒治疗对乙型肝炎相关原发性肝癌临床疗效的影响
- 小型建设工程招标文件
- 部门经理督查督办管任务理说明
- 山东省济南外国语学校2011届高三第二次质量检测(物理)
- 广东电大11春美学原理3,4章
- 劳务派遣人员工伤赔偿问题
- 致各位准业主和债权人同胞们
- 苏教版小学信息技术毕业试题及答案
- 人文地理学试卷
- 管理经济学练习题1
- 中小学音乐教师招聘考试笔试-专业基础知识(附答案)
- 华中科技大学大物(下)9、10章答案
- 2019电大纳税筹划答案