网站大量收购独家精品文档,联系QQ:2885784924

数据结构课后练习 - 第2章数据结构课后练习 - 第2章.ppt

数据结构课后练习 - 第2章数据结构课后练习 - 第2章.ppt

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课后练习 - 第2章数据结构课后练习 - 第2章

第二章 线性表 2.1 线性表的类型定义 2.2 线性表的顺序表示和实现 2.3 线性表的链式表示和实现 2.4 一元多项式的表示及相加 学习要点 了解线性表的逻辑结构特性,即数据元素之间存在着线性关系,在计算机中表示这种关系两类不同的存储结构:顺序存储结构和链式存储结构。用前者表示的线性表简称为顺序表,用后者表示的线性表简称为链表。 熟练掌握这两类存储结构的描述方法,如一维数组中一个区域[i..j]的上、下界和长度之间的变换公式(L=j-i+1, i=j-L+1, j=i+L-1),链表中指针p和结点*p的对应关系(结点*(p-next)是结点*p的后继等),链表中头结点、头指针和首元结点(第一个元素的结点)的区别及循环链表、双向链表的特点等。链表是本章的重点和难点,掌握指针操作和内存动态分配的编程技术。 学习要点 熟练掌握在顺序存储结构上线性表的基本操作,如查找、插入和删除的算法。 熟练掌握在各种链表结构中线性表的基本操作,能在实际应用中选用适当的链表结构。 能够从时间与空间复杂度方面综合比较线性表两种存储结构的不同特点及其适用场合。 一、判断对错题 1. 线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此属于同一数据对象。( ) 2. 线性表的链式存储结构优于顺序存储。( ) 3. 在单链表中,任何两个元素的存储位置之间都有固定的联系,所以可以从头结点开始查找任何一个元素。( ) 4. 顺序存储的线性表可以实现随机存取。( ) 二、单项选择题 1. 用单链表方式存储的线性表,存储每个结点需要两个域,一个数据域,另一个是______。 A. 当前结点所在的地址域 B. 指针域 C. 空指针域 D. 空闲域 2. 在具有n个结点的单链表中,实现______的操作,其算法的时间复杂度都是O(n)。 A. 遍历链表和求链表的第i个结点 B. 在地址为p的结点之后插入一个结点 C. 删除开始结点 D. 删除地址为p的结点的后继结点 二、单项选择题 3. 已知一个顺序存储的线性表,设每个结点需占m个存储单元,若第一个结点的地址为da1,则第i个结点的地址为______。 A. da1+(i-1)×m B. da1+i×m C. da1-i×m D. da1+(i+1)×m 4. 在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是______。 A. 访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n) B. 在第i个结点之后插入一个新结点(1≤i≤n) C. 删除第i个结点(1≤i≤n) D. 将n个结点从小到大排序 二、单项选择题 5. 两个指针p和q,分别指向单链表的两个元素,p所指元素是q所指元素前驱的条件是______。 A. p-next==q-next B. p-next=q C. q-next=p D. p==q 三、填空题 1. 在链表中逻辑上相邻的元素的物理位置__________相连。 2. 在n个结点的顺序表中删除一个结点平均需要移动__________个结点,具体的移动次数取决于_______________________________________________。 3. 在单链表中要在已知结点*p之前插入一个新结点,需找到______________________________。 四、简答题 1. 简述线性表的存储结构及各自的优点。何时选用顺序表、何时选用链表作为线性表的存储结构为宜? 四、简答题 1. 简述线性表的存储结构及各自的优点。何时选用顺序表、何时选用链表作为线性表的存储结构为宜? 四、简答题 2. 什么是头指针、头结点、首元结点。 四、简答题 3. 在顺序表中插入和删除一个结点需平均移动多少个结点?具体的移动次数取决于哪两个因素? 4. 分析下述三个算法的具体功能。 ListNode *Demo1(LinkList L, ListNode *p) { //L是有头结点的单链表 ListNode *q=L-next; while(qq-next!=p) q=q-next; if(q) return q; else Error(*p not in L); } 4. 分析下述三个算法的具体功能。 void Demo2(ListNode *p, ListNode *q) { //p,*q是链表中的两个结点 DataType temp; temp=p-data; p-data=q-data; q-data=temp; } 4. 分析下述三个算法的具体功能。 LinkList test1( LinkList L ) { //L是无头结

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档