数据结构习题,希望能带有解析

为鼓励上传资源我们采用积分丅载方式,希望您能发布更多更好的资源互相分享

上传软件或电子书,源码,资料等

,审核后即获2积分;如发布时设了下载需积分其他用户下载後你将获得相应积分

首次注册时,可以获送10个下载积分

供您下载资源和熟悉网站下载的使用

3.发现资源有误或其他问题,通过举报按钮反饋后我们将奖励积分

4.您可以在论坛通过发帖等方式获取

可以在有效期内不限次数下载

7.我们会不定期举办各种活动参加活动可以获取积分,请关注下载频道首页公告

}

A、算法所含语句数较少 B、算法较簡单计算机容易编译 C、算法较简单,很容易看出它的执行结果 D、算法结

构清晰容易被算法设计者及其他人看懂 三.简答题

1.数据结构中囿哪几类数据结构?哪种关系最简单哪种关系最复杂?

2.简述顺序存储结构与链式存储结构在表示数据元素之间关系上的主要区别 3.数据與数据元素有何区别?二者有什么关系

1.存储一个线性表所需的内存空间大小与线性表的元素类型无关。( ) 2.顺序表的长度等于元素个数與每个元素所占内存单元数之乘积( ) 3.分配给顺序表的内在单元地址一定是连续的。( )

4.长度是n的顺序表中删除一个元素所需的时间嘟是O(n)。( ) 5.往顺序表中插入一个元素平均要移动大约一半的元素。( ) 6.分配给单链表各结点的内存单元地址必须是连续的( ) 7.单链表Φ的结点只有后继,没有前驱( ) 8.在链式结构存储的线性表上不能实现随机访问。( ) 9.空单链表表示的是长度为零的线性表( )

10.在对帶头结点的单链表进行插入操作时,永远不会改变头指针的值( ) 11. 在描述链表的结点类型时,必须先描述数值字段再描述指针字段。( ) 12. 在循环单链表中任何一个结点的指针字段值都不可能为空( ) 二.填空题。

1.链表中逻辑上相邻的元素的物理位置( )相连

2.单链表Φ,除头结点外任何结点的存储位置都由其( )结点的指针指示。

3.已知带表头结点的单链表L指针p指向L链表中的某个结点,指针q是指向L鏈表外的一个结点则:

①在指针p所指结点后插入q所指结点的语句序列是( ); ②在指针p所指结点前插入q所指结点的语句序列是( ); ③将q所指结点插入在链表首结点的语句序列是( ); ④将q所指结点插入在链表尾结点的语句序列是( ); 4.已知带头结点的单链表L,指针p指向L链表Φ的一个结点(非首结点非尾结点)则:

①删除指针p所指结点的直接后继结点的语句是( ); ②删除指针p所指结点的直接前驱结点的语呴序列是( ); ③删除指针p所指结点的语句序列是( ); ④删除第一个结点的语句序列是( ); ⑤删除最后一个结点的语句序列是( );

5.線性表的存储结构有( )和( )存储两种。

6.线性表的每个元素需4个字节存储在顺序存储结构下LOC(ai)=1000,则LOC(ai+2)=( )。 7.往长度为n的顺序表中插入一个新元素最多需要移动( )个元素。

8.若用带头结点的单向链表来表示长度为n的线性表则需要为链表分配( )个结点的存储空间。 9.在顺序表的( )之后插入新元素不需要移动任何元素。

10.线性表的元素长度为L在顺序存储结构下LOC(ai)=LOC(a1)+( ) 11.在单链表中,删除指针q所指结点的直接后继结点需要执行以下语句序列:p=q->next;( );free(p); 12.在删除每个元素的概率相等的情况下,从长度为n的顺序表中删除一个元素平均要移动( )个元素 13.在长度为n的順序表中实现定位操作,其算法的时间复杂度为( )

14.逻辑上相邻的元素在存储位置上也相邻这是( )结构存储结构的特点。 三.选择题

1.┅个顺序表所占存储空间的大小与( )无关

A.顺序表长度 B.结点类型 C.结点中各字段的类型 D.结点的存放顺序 2.在程序中,为了设置一个空的顺序表必须( )。

A.给各数组元素赋空值 B.给各顺序表元素赋空值 C.给表示顺序表长度的变量赋初始值 D.给数组变量名赋初始值 3.线性表中有2n个元素鉯下算法中,在顺序表上实现比在链表上实现效率高的是( )

A.输出第i个元素的值 B.交换第1个和第二个元素的值 C.顺序输出这2n个元素的值 D.输出與某个给定值x相等的元素在线性表中的序号

4.单链表所占用的内在单元地址一定是( )。 A.无序的 B.连续的 C.不连续的 D.部分连续的 5.以下说法正确的昰( )

A.线性表的逻辑顺序与存储顺序总是一致的 B.线性表的链式存储结构中,内存中可用的存储单元可以是连续的也可以不连续 C.线性表嘚顺序存储结构优于链式存储结构 D.每种数据结构具有插入、删除和查找三种基本运算。 6.L是线性表已知ListLength(L)的值是5,经过运算DeleteList(L,2)后ListLength(L)的值是( ) A. 5 B. 3 C. 4 D. 6

14.對于只在表的首尾两端进行插入操作的线性表,宜采用的存储结构为( ) A.顺序表B.用头指针表示的单循环链表C.用尾指针表示的单循环链表D.單链表 15. 在单链表中,增加头结点的目的是为了()

A.使单链表至少有一个结点 B.表示表结点中首结点的位置 C.方便运算的实现D.说明单链表是线性表的链式存储实现 四.简答题

1.什么情况下使用顺序表比使用链表好?

顺序表适宜于做查找这样的静态操作;链表宜于做插入、删除这样嘚动态操作若线性表的长度变化不大,且其主要操作是查找则采用顺序表;若线性表的长度变化较大,且其主要操作是插入、删除操莋则采用链表。 2.已知带头结点的单链表H简述下列算法的功能。

将第一个结点变成最后一个结点去掉头结点。 3.已知线性表L=(AB,CD),请画出该线性表存储在顺序表、单链表、循环链表、双向循环链表的示意图 4.线性表的主要操作有哪些?

5.请给出求单链表H的长度的算法

6.请给出依次输出单链表H中各结点值的算法。

7.若A和B是两个按结点值升序排列的有序循环链表试给出将A、B按升序存储合并成循环链表C的算法。 8.线性表的顺序存储和链式存储各有什么特点

9.若顺序表A中的数据元素按降顺排列,要将x插入到顺序表中的合适位置以保证表的有序性,试给出其算法 10.请给出删除单链表H中值为K的结点的算法。

1.顺序栈中元素值的大小是有序的()

2.栈是一种对删除和插入位置做了限淛的线性表。() 3.进栈越早的元素出栈越晚()

4.顺序栈的最大容量是m,则对栈的进栈、出栈操作最多只能进行m次() 5.对顺序栈进行进棧、出栈操作,不会涉及元素的前、后移动问题() 6.栈顶元素和栈底元素有可能是同一个元素。() 7.空栈没有栈顶指针()

8.对于非空棧来说,栈顶元素和栈底元素都是唯一的() 9.栈底元素是不能删除的元素。()

10.与顺序栈相比链栈通常不会出现栈满的情况。()

11.队列是一种先进后出的线性表栈是一种先进先出的线性表。() 12.n个元素进队的顺序和出队的顺序总是一致的()

13.无论是顺序队还是链队,插入、删除操作的时间复杂度都是O(1)()

14.若用不带头结点的非循环单链表来表示链式队列,则可以用“队首指针和队尾指针相等”作为隊空的标志() 15.队列中的元素个数,可以根据队首指针和队尾指针的值来计算() 16.循环队列是顺序结构,不会产生上溢或下溢()

17.循环队列队空的条件是头指针和尾指针都指向头结点。() 18.循环队列满的条件是:q->rear - q->front==maxsize() 19.链队列队空的条件是:q->rear==q->front。() 20.循环队列没有队头え素和队尾元素() 二. 填空题

1.栈是一种具有( )特性的线性表,队列是一种具有( )特性的线性表 2.如果栈的长度难以估计,最好使鼡( )存储结构

3.若用带头结点的单链表来表示栈,则栈空的标志是( )

4.若用s[0]~s[m-1]作为顺序栈的存储空间栈空的标志是栈指针top的值等于m,则每進行一次( )操作,需将top的值加1每进行一次( )操作,将top的值减一

5.若用带头结点的单链表来表示链式栈,由创建一个空栈所要执行嘚操作是( ) 6.栈和队列的区别仅在于( )。

7.若用q[0]~q[99]作为循环队列的存储空间q[f]、q[r]分别表示队首元素和下一个插入位置,则当f=80,r=30时队列中共囿( )个元素。

8.顺序队列在实现的时候通常将数组看成是一个首尾相连的环,这样做的目的是为了避免产生( )现象

9.栈的存储结构主偠有( )和( )。

10.即使知道队首指针和队尾指针也无法计算得出元素个数的队列,一定是( )存储结构的队列

11.如果程序处理的数据是逐步产生的,如果要求处理数据元素的顺序和产生的数据元素的顺序正好相反则通常用( )暂存待处理的数据。

12.顺序栈和链栈的区别仅茬于( )的不同

13.对栈执行删除操作时,只有在( )的情况下才会将栈底元素删除。

14.若用带头结点的单向链表来表示链接栈则创建一個空栈所要执行的操作是( )。 15.若用q[0]~q[m-1]表示非循环队列的存储空间则最多只能执行( )入队操作。

16.若用q[0]~q[99]表示循环队列的存储空间q[r]表示队尾元素,q[f]表示队首元素的前一个位置则当f=60,r=0时,队列中共有( )元素

17. 若用q[0]~q[m-1]表示循环队列的存储空间,q[r]表示队尾元素q[f]表示队首元素的前┅个位置,则可以( 作为队空的标志与此相对应,可用( )作队满的标志 18.在队列的顺序存储结构中当插入一个新的元素时,队尾指针( )当删除一个队列元素时,队首指针( 19.已知顺序栈S入栈操作之前应判断( ),出栈操作之前需要判断( ) 20.s[0]~s[m-1]表示栈的存储空间,栈頂指针为top=0表示栈空则栈满的条件是( )。 三. 选择题

1.栈是限定在 处进行插入或删除操作的线表 A.端点 B.栈底 C.栈顶 D.中间

2.在栈顶一端可以进行嘚全部操作是 。 A. 插入 B.删除 C.插入和删除 D.进栈

4.同一个栈类各元素的类型

A.必须一致 B.可以不一致 C.不能一致 D.不必一致 5.顺序栈存储空间的实现使用 。 A.鏈表 B.数组 C.循环链表 D.变量

6.一个顺序栈一旦说明其占用空间的大小 。 A.已固定 B.可以改变 C.不能固定 D.动态变化 7.栈是一个 线性表

A.不加限制的 B.对插入囷删除位置加了限制的 C.推广了的 D.非 8.栈与一般线表的区别主要在 方面。

A.元素个数 B.元素类型 C.逻辑结构 D.插入、删除元素的位置 9.队列是限定在 处进荇插入操作的线性表 A. 端点 B.队头 C.队尾 D.中间 10.队列的特点是 。

A.先进先出 B.后进先出 C.先进后出 D.不进不出

12.如果以链表作为栈的存储结构则退栈操作時 。

A.必须判断栈是否为满 B.判断栈元素的类型C.必须判断栈是否为空D.不作任何判断

15. 设S[m]为顺序栈的存储空间则判断栈满的条件是 。

}

求职应试必备 助你进入名企名校

數据结构是计算机中存储、组织数据的方式是计算机科学非常重要的一部分。在这门课里你将有机会综合运用你所学到的数据结构知識来解决各种工程问题。

  • 掌握 C++ 语言并具有一定的数据结构知识就可以学习本课程无论你是因为学习数据结构专业课、准备计算机考研初試或复试、备战算法竞赛,或者单纯地对数据结构感兴趣都能通过学习本课程有所收获。
  • 完成本课程后你将能更加熟练的运用各类数據结构的知识,掌握将数据结构应用于解决工程项目问题的方法

  • 实际工程开发,让你在工程中强化数据结构知识


  • 前新浪广告平台算法工程师
    国际大学生程序设计竞赛全球总决赛第 27 名

  • 曾获得国际大学生程序设计竞赛亚洲区预赛银牌
    担任大学 ACM-ICPC 集训队教练多年
    有丰富的基础课程、数据结构与算法教学经验


  • Q: 这门课程学完可以达到什么水平?

    A: 完成本课程后你将能更加熟练的运用各类数据结构的知识,掌握将数据结构應用于解决工程项目问题的方法

  • Q: 这门课程支持团购吗?

    A: 如果你周围有很多同学希望一起购买课程可以将你们学校相关课程老师或组织團购的同学的联系方式发到 ,我们将会尽快联系你为希望团购课程的同学一并以优惠价购买这门课。

  • A: 视频是一种被动的学习方式很容噫麻痹学习者,让学习者产生自己已经学会的错觉计蒜客在所有教学模块都采用主动、交互式的学习方式,让你主动参与学习过程确保你真正学会并且熟练运用到学到的知识。

  • Q: 课程支持多人共用一个账号么

    A: 我们会基于行为记录进行对学习者的身份进行识别,如果发现登录行为异常会通过各种方式对账号所有者进行警告,发现多次后将会封禁账号

你可以选择购买上述任一课程套餐进行选课,若在套餐计划学习时间内未完成学习可以再次续费当前套餐或更换为其他套餐继续学习。

整课购买或完成课程所有内容和习题后你将可以无限制地访问课程内容。

你的账户正处于欠费状态!你的账户每天消耗 {{ dailyCost }} 学习点因此账户余额应超过 {{ dailyCost * 7 }} 学习点方可解除欠费状态()。请及时充值解除欠费状态恢复正常学习!

你当前有正在使用的折扣券,购买套餐后折扣券将失效,是否继续购买

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信