数据结构第一次实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
.. . . .. 实验一 链式结构综合设计 班级 : 信科 1403 班 姓 段胜磊 学 2014040430 名: 号: 5 一、实验目标 本实验通过定义单向链表的数据结构 ,设计创建链表 、插入结点 、遍历结点等基本算 法,使学生掌握线性链表的基本特征和算法 ,并能熟练编写 C 程序,培养理论联系实际和 自主学习的能力 ,提高程序设计水平 。 二、实验内容 设计一个职工信息查询系统 。每个职工的信息包括 ,职工号 ,姓名 ,所属部门号 ,月薪。 1 )建立一个职工信息的单链表L。 2 )在单链表 L 中查找职工号为 t 的职工信息 ,并输出 。 3 )在单链表 L 中删除职工号为 t 的职工信息 。 4 )输出单链表 L 中所有的节点 三、数据结构的设计 由于职工信息在逻辑结构上是线性的 ,将其建立为链式结构既使得职工信息的增加可以是 动态的 ,也使得其删除过程容易实现 。 具体节点类型定义如下 : Typedef struct elem {int no; Char name[20];  / 职工号 / 职工姓名 Int depno;  / 所属部门号 .  学习参 考  . .. . . .. Int salary; / 月薪 }elemtype Typedef struct 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) 功能:该函数实现在含有头节点的链表 L 上查找职工号为 t 的职工信息 ,找到则返回 该节点的指针 ,否则返回 NULL 。 具体过程 : 1) 建立一个新节点 ,并且定义一个 t 作为要查找的职工号 。然后把头结点的 next 域 赋值给 p 节点 。 2) 接着判断 p 节点指向的链表是否为 NULL 。 3) 如果 p 节点指向的链表不为空 ,则判断节点 p 中的职工号是否为 t 职工号 ,如果不 是则 p 节点指向它的下一个域 。 返回节点 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 所指节点的职工信息 。 具体过程 : .  学习参 考  . .. . . .. 建立一个新的节点 p 。 判断 p 是否为空 。 如果 p 不为空 ,则分别输出职工信息 。 然后使节点 p 指向节点 P 的下一个域 。五、实验结果及分析 实验结果 : 结果分析 :这是开始分别录入了三个职工的信息 ; 结果分析 :这是重新把刚才录入的所有职工信息的都输出来 ; .  学习参 考  . .. . . .. 结果分析 :( 1 )首先我们查找了职工号为 222 的职工信息 ; 2)然后接着删除职工号为 222 的职工信息 ; 3)最后输出了职工信息 。 六、源代码 #includestdlib.h #includestdio.h typedef struct elem { int no; // 职工号 char name[20]; // 职工姓名 int depno; // 所属部门号 int salary; // 月薪 }elemtype

文档评论(0)

135****6700 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档