计算机习题答案_20140621..docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机习题答案_20140621.

2.1 什么是数据结构?它对算法有什么影响? 答: 数据结构是指同一数据对象中各数据元素间存在的关系,可以看作是相互之间存在着某种特定关系的数据元素的集合。 对算法是影响:算法的效率与数据结构有关,数据结构的选择对算法实现的效率起至关重要的作用。 2.2何谓算法?它与程序有何区别? 算法是解决某一特定类型问题的有限运算序列。 和程序的区别:一个程序包括数据结构和算法两个方面的内容,算法是程序的一个要素。 2.6 数据的存储结构主要有哪两种?它们之间的本质区别是什么? 数据的存储结构主要有顺序存储结构和链式存储结构。 本质区别:顺序存储结构的存储空间是连续的,数据元素间的逻辑关系借助存储的相对位置来表示;链式存储结构不需要一组连续的存储单元,其数据元素可以分散存放在存储空间中,其数据元素之间的逻辑关系借助指针来表示。 2.12 试编写算法求已知单链表的长度,并考虑表空的情况 int GetListLength(Node* pHead) { int i = 0; Node* pCur = pHead; while (pCur != NULL) { i++; pCur = pCur-next; } return i; } 2.13 试编写算法删除单链表中的第K个节点 // 2.13 删除单链表中的第k个节点。注: 节点序号从1开始 void RemoveNode(Node* pHead, int k) { Node* pPre = NULL; Node* pCur = NULL; pCur = pHead; int i = 1; while (pCur != NULL) { // 不是要删的节点序号,则继续下一个节点 if (k != i) { pPre = pCur; pCur = pCur-next; i++; continue; } // 要删除的就是第一个节点 if (k == 1) { pHead = pCur-next; } else { // 要删除的是中间某个节点 pPre-next = pCur-next; } delete pCur; } } 2.14 已知一单向链表中数值已按递增有序排列,先要插入一个新节点,并使插入后链表仍为有序序列 // 可参考胶片19页 Typedef struct tagNode { Int data; Node* next; }Node; void InsertNode(Node* pHead, Node* pNewNode) { // 链表为空时,将该节点作为链表的第一个节点 if (pHead == NULL) { pHead = pNewNode; return; } Node* pPre = NULL; Node* pCur = pHead; while(pCur != NULL) { // 新节点的数据比单链表的头节点的数据小,则将新节点插入到最开头 if (pCur-data pNewNode-data) { pNewNode-next = pCur; pHead = pNewNode; break; } Node* pNext = pCur-next; // 将新节点插入到单链表的表尾 if (pNext == NULL) { pCur-next = pNewNode; break; } // 将新节点插入到单链表的中间 if (pNext-data pNewNode-data) { pNewNode-next = pNext; pCur-next = pNewNode; break; } pPre = pCur; pCur = pNext; } return; } 2.28 将下列的一般树化为二叉树 转换后的二叉树如右图所示 转换后 2.30 设一棵二叉树其中序和后序遍历为,中序:BDCEAFHG 后序:DECBHGFA画出这棵二叉树的逻辑结构,并写出先序遍历结果。 先序遍历:ABCDEFGH。其逻辑结构如下: 2.32 给定一组元素{17,28,36,54,30,27,94,15,21,83,40},画出由此生成的二叉排序树。 2.33 定一组权值W={8,2,5,3,2,17,4},画出由此生成的哈夫曼树。 生成的哈夫曼树为: 或者

文档评论(0)

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

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

1亿VIP精品文档

相关文档