软件技术基础验指导书zml.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文档。上传文档
查看更多
软件技术基础验指导书zml

软件技术基础 实 验 指 导 书 河南科技大学信息工程学院计算机系 目 录 实验一单链表的运算 3 实验二 二叉树的建立和遍历 5 实验三 二叉排序树的建立和查找 6 实验一单链表的#include stdio.h #include stdlib.h struct node /*结点类型定义*/ { int data; /*结点的数据域*/ struct node *next; /*结点的指针域*/ }; 定义函数---建立单链表 struct node * CreateList( ) 定义函数---输出链表所有结点值 void PrintList(struct node* head) 定义函数---单链表查找 void Locate(struct node* head, int key) 定义函数---完成单链表的插入运算 在指定位置i插入指定元素x struct node * InsertList(struct node * head, int i, int x) 定义函数---完成单链表的删除运算 删除指定位置的结点 struct node * DeleteList((struct node * head, int i ) int main() { int i; int key, x; struct node * head, *p; head=CreateList(); /*建立单链表*/ PrintList(head); /*打印单链表*/ printf(输入要查找的值:); scanf(%d,key); Locate(head,key); /*单链表查找*/ printf(请输入欲插入元素的位置:); scanf(%d,i); printf(请输入欲插入的元素:); scanf(%d,x); head=InsertList(head,x,i); /*单链表插入*/ PrintList(head); /*打印单链表*/ printf(请输入欲删除结点的位置:); scanf(%d,i); head=DeleteList(head,i); /*单链表删除*/ PrintList(head); /*打印单链表*/ } } 思考题 如果生成带头结点的单链表,程序应如何修改? 实验报告要求 具体内容包含以下几项:实验题目、实验目的、实验环境、实验内容与完成情况(要求附上自主设计的源程序)、实验中出现的问题、对问题的解决方案、完成思考题、实验总结等。 实验二 二叉树的建立和遍历 实验目的 1.掌握二叉树的建立算法 2.掌握二叉树的前序、中序和后序遍历算法。 实验环境 操作系统和C语言系统 预习要求 复习二叉树的生成及遍历算法,编写完整的程序。 实验内容 要求采用二叉链表作为存储结构,完成二叉树的建立,前序、中序和后序遍历的操作,求所有叶子及结点总数的操作等。具体实现要求:分别利用前序遍历、中序遍历、后序遍历所建二叉树。 参考算法 二叉树的建立算法思路:主要利用二叉树的性质:在编号的完全二叉树中,编号为i的结点如果存在左孩子,则其编号为2i;若其存在右孩子,则其编号为2i+1;若存在父结点,则其编号为i/2取整。对任意二叉树,先按满二叉树对其进行编号,算法中使用一个辅助向量s来存放指向树结点的指针。如s[i]中存放编号为i的结点的指针,即为该结点的地址。当结点编号i=1时,所产生的结点为根结点,同时将指向该结点的指针存入s[1]。当结点编号i1时,产生一个新的结点后,也要将指向该结点的指针存入s[i],由上述性质可知:j=i/2为它的双亲结点编号。如果i为偶数,则它是双亲结点的左孩子,即让s[j]-lch=s[i];若i为奇数,则它是双亲结点的右孩子,即让s[j]-rch=s[i]。这样就将新输入的结点逐一与其双亲结点相连,生成二叉树。 二叉树的遍历算法可以使用递归算法实现,也可采用非递归算法实现,可参考教材上算法实现。 思考题 请思考其它的二叉树建立算法。 实验报告要求 具体内容包含以下几项:实验题目、实验目的、实验环境、实验内容与完成情况(要求附上自主设计的源程序)、实验中出现的问题、对问题的解决方案、完成思考题、实验总结等。 实验三 二叉排序树的建立和查找 实验目的 1.掌握二叉排序树的建立算法 2.掌握二叉排序树查找算法。 实验环境 操作系统和C语言系统 预习要求 复习二叉排序树的生成及查找算法,编写完整的程序。 实验内容 实现二叉排序树上的查找算法。具体实现要求:用二叉链表做存储结构,输入键值序列,建立一棵二叉排序树并在二叉排序树上

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档