2020年最新版数据结构课后习题答案[1].docx

2020年最新版数据结构课后习题答案[1].docx

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
学习参 学习参 考 第1章绪论 填空 ⑴在顺序表中,等概率情况下,插入和删除一个元素平均需移动 ()个元素,具体移动元素的个数与 ()和()有关。 【S答】表长的一半,表长,该元素在表中的位置 ⑵顺序表中第一个元素的存储地址是 100,每个元素的长度为2,则第5个元素的存储地址是 ()。 解答】108 分析】第5个元素的存储地址=第1个元素的存储地址 + (5 — 1) X 2=108 ⑶设单链表中指针p指向结点A,若要删除A的后继结点(假设A存在后继结点),则需修改指针的操 作为()。 解答】p-next=(p-next)-next ⑷单链表中设置头结点的作用是 ()。 解答】为了运算方便 分析】例如在插入和删除操作时不必对表头的情况进行特殊处理 。 ⑸非空的单循环链表由头指针 head指示,则其尾结点(由指针p所指)满足()。 解答】p-next=head 分析】如图2-8所示。 ⑹在由尾指针rear指示的单循环链表中,在表尾插入一个结点s的操作序列是();删除开始结点的操 作序列为()。 解答】s-next =rear-next; rear-next =s; rear =s;( 将S的指针域先弄成表尾指针域 ,而表尾指针域是代 表下个结点的地址信息,所以要将指针域要用 S替代,最后把表尾给S) q=rear-next-next; rear-next-next=q-next; delete q; 分析】操作示意图如图2-9所示: E1M带尾指针的循环琏表中插入和删除操作示意图 ⑺一个具有n个结点的单链表,在指针p所指结点后插入一个新结点的时间复杂度为 ();在给定值为 x的结点后插入一个新结点的时间复杂度为 ()。 解答】O (1) ,O (n) 分析】在p所指结点后插入一个新结点只需修改指针 ,所以时间复杂度为 O (1)是表示常数计算时间); 而在给定值为x的结点后插入一个新结点需要先查找值为 x的结点,所以时间复杂度为 O(n)。 ⑻可由一个尾指针唯一确定的链表有 ()、()、()。 解答】循环链表,循环双链表,双链表 选择题 ⑴ 线性表的顺序存储结构是一种 ()的存储结构,线性表的链接存储结构是一种 ()的存储结构 A随机存取 A随机存取 B顺序存取 C索引存取 D散列存取 解答】A, B 分析】参见221 分析】参见221。 ⑵线性表采用链接存储时 A必须是连续的 C 一定是不连续的 ,其地址()。 B部分地址必须是连续的 D连续与否均可以 解答】D 分析】线性表的链接存储是用一组任意的存储单元存储线性表的数据元素 ,这组存储单元可以连续,也可 TOC \o 1-5 \h \z 以不连续,甚至可以零散分布在内存中任意位置 。 ⑶单循环链表的主要优点是 ()。 A不再需要头指针了 B从表中任一结点岀发都能扫描到整个链表 ; C已知某个结点的位置后,能够容易找到它的直接前驱; D在进行插入、删除操作时,能更好地保证链表不断开。 解答】B ⑷ 链表不具有的特点是 ()。 A可随机访问任一元素 B插入、删除不需要移动元素 C不必事先估计存储空间 D所需空间与线性表长度成正比 解答】A ⑸若某线性表中最常用的操作是取第 i个元素和找第i个元素的前驱,则采用()存储方法最节省时 间。 A顺序表B单链表C双链表 D单循环链表 解答】A 分析】线性表中最常用的操作是取第 i个元素,所以,应选择随机存取结构即顺序表 ,同时在顺序表中查 找第i个元素的前驱也很方便。单链表和单循环链表既不能实现随机存取 ,查找第i个元素的前驱也不方 便,双链表虽然能快速查找第i个元素的前驱,但不能实现随机存取。 ⑹若链表中最常用的操作是在最后一个结点之后插入一个结点和删除第一个结点 ,则采用()存储方法 最节省时间 A单链表B带头指针的单循环链表 C双链表D带尾指针的单循环链表 解答】D 分析】在链表中的最后一个结点之后插入一个结点需要知道终端结点的地址 ,所以,单链表、带头指针的 单循环链表、双链表都不合适,考虑在带尾指针的单循环链表中删除第一个结点 ,其时间性能是0(1),所 以,答案是D。 ⑺若链表中最常用的操作是在最后一个结点之后插入一个结点和删除最后一个结点 ,则采用()存储方 法最节省运算时间。 A单链表B循环双链表 C单循环链表 D带尾指针的单循环链表 解答】B 分析】在链表中的最后一个结点之后插入一个结点需要知道终端结点的地址 ,所以,单链表、单循环链表 都不合适,删除最后一个结点需要知道终端结点的前驱结点的地址 ,所以,带尾指针的单循环链表不合 适,而循环双链表满足条件。 ⑻在具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是 ()。 A 0(1) B 0(n) C 0(n2) D O(nlog2n) 解答】B 分

文档评论(0)

cooldemon0602 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档