数据结构与算法实训内容和要求.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文档。上传文档
查看更多
数据结构与算法实训内容和要求

数据结构与算法实训内容及要求 Ⅰ 基础题部分实训内容及要求 一、顺序表操作 1、显示 2、插入 3、查找(显示比较次数) 4、删除(显示移动次数) 5、排序(普通、快速,显示比较次数、移动次数) 6、折半查找(显示比较次数) 7、编程实现一个顺序表的就地逆置,即利用原表的存储空间将顺序表逆置。 提高题: 8*、要求以较高的效率实现删除顺序表中元素值在x到y(x和y自定)之间的所有元素。 [解题思路] 在顺序表中设置两个初值为0的下标变量i和j,其中,i为比较元素的下标,j为赋值元素的下标。依次取顺序表中下标为i的元素与x和y比较,假若是x到y之外的元素,则赋值给下标为j的元素。这种算法比删除一个元素后立即移动其后面的元素的效率高得多。 9*、编程实现将两个有序的顺序表进行合并,要求同样的数据元素只出现一次。 [解题思路] 由于两个顺序表中的元素呈有序排列,在进行合并的时候,依次比较,哪个顺序表的元素值小,就先将这个元素复制到新的顺序表中,若两个元素相等,则复制一个即可,这样一直到其中的一个顺序表结束,然后将剩余的顺序表复制到新的顺序表中即可。 10*、有序插入(显示比较次数、移动次数), 屏幕提示后,从键盘输入一个元素值,在经过排序的线性表中插入这个元素; 屏幕显示比较次数和移动次数,应有溢出判断和报告。 顺序表操作菜单如下图所示: 二、单链表操作 1、创建 2、显示 3、查找(显示比较次数) 4、插入 5、删除(显示比较次数) 6、将链接存储线性表逆置,即最后一个结点变成第1个结点,原来倒数第2个结点变成第2个结点,如此等等。 7、生成有序的两个单链表A和B(链表的数据和个数自定),其首结点指针分别为a和b,要求将两 个单链表合并为一个有序的单链表C,其首结点指针为c,并且合并后的单链表的数据不重复。 8、将一个首结点指针为a的单链表A分解成两个单链表A和B,其首结点指针分别为a和b,使得链表A中含有原链表A中序号为奇数的元素,而链表B中含有原链表A中序号为偶数的元素,且保持原来的相对顺序。 单链表操作菜单如下图所示: 三、二叉树操作 (一) 实现功能: 1:初始化 2:显示(Map.txt) 3:先序遍历(递归法) 4中序遍历(递归法) 5:后序遍历 (递归法) 6:统计叶子结点数目 7:二叉树深度 8:左右子树交换 9:生成二叉排序树 a:查找排序树中的结点 b:删除排序树中的结点 c:先序遍历(非递归法) d:层次遍历 e:凹入法表示二叉树 f:广义表表示二叉树 (二) 二叉树操作 1、创建。 2、用递归方法分别先序、中序、后序遍历以Tree为根指针的二叉树。 3、编写递归算法,计算二叉树中叶子结点的数目。 4、编写递归算法,计算二叉树的深度。 5、编写递归算法,将二叉树中所有结点的左、右子树相互交换。 6、使用数组elem中的随机数序列(以0表示结束,不包括0),生成以Tree为根指针的二叉排序树。 7、在以Tree为根指针的二叉排序树中查找结点。 8、从以Tree为根指针的二叉排序树中删除结点(适用各种位置的结点)。 9、用非递归算法,先序遍历以Tree为根指针的二叉树。 提示:用数组 BiTNode *stack[max] 构成堆栈,利用这个堆栈实现功能。 10、对以Tree为根指针的二叉树,从根结点开始,逐层从左到右输出各结点的数据。 提示:用数组 BiTNode *queue[max] 构成队列,利用这个队列实现功能 11、用凹入表示法的表示以Tree为根指针的二叉树,例如: // 324 // 123 // 746 // 690 // 567 12、用广义表表示以Tree为根指针的二叉树,例如 // (324(123(746,690),567)) 提高题: 13*、根据Huffman编码原理,使用数组elem中的随机数序列(以0表示结束,不包括0)作为结点的权重,生成赫夫曼树,以及赫夫曼编码,计算平均带权径长度。 14*、(1)随机生成二叉树。 (2)生成并保存先(后)序、中序输出序列。 (3)按照保存的一对输出序列恢复出二叉树。(4)生成先(后)序输出序列。 二叉树操作菜单如下: Ⅱ 综合题部分实训内容及要求

文档评论(0)

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

分享好文档!

1亿VIP精品文档

相关文档