好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

数据结构习题及答案——严蔚敏课后习题答案.doc

8页
  • 卖家[上传人]:博****1
  • 文档编号:405217344
  • 上传时间:2023-03-11
  • 文档格式:DOC
  • 文档大小:22.92KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第一章 绪论 选择题 1.组成数据的基本单位是 A数据项B数据类型C数据元素D数据变量 2.数据结构是研究数据的 以及它们之间的相互关系 A理想结构物理结构 B理想结构抽象结构 C物理结构逻辑结构 D抽象结构逻辑结构 3.在数据结构中从逻辑上可以把数据结构分成 A动态结构和静态结构 B紧凑结构和非紧凑结构 C线性结构和非线性结构D内部结构和外部结构 4.数据结构是一门研究非数值计算的程序设计问题中计算机的 ①以及它们之间的②和运算等的学科 ① A数据元素B计算方法C逻辑存储D数据映像 ② A结构 B关系 C运算 D算法 5.算法分析的目的是 A 找出数据结构的合理性 B研究算法中的输入和输出的关系 C分析算法的效率以求改进D分析算法的易懂性和文档性 6.计算机算法指的是①它必须具备输入、输出和②等5个特性 ① A计算方法B排序方法C解决问题的有限运算序列D调度方法 ② A可执行性、可移植性和可扩充性B可行性、确定性和有穷性 C确定性、有穷性和稳定性 D易读性、稳定性和安全性 二、判断题 1.数据的机内表示称为数据的存储结构 2.算法就是程序 3.数据元素是数据的最小单位 4.算法的五个特性为有穷性、输入、输出、完成性和确定性。

      5.算法的时间复杂度取决于问题的规模和待处理数据的初态 三、填空题 1.数据逻辑结构包括________、________、_________ 和_________四种类型其中树形结构和图形结构合称为_____ 2.性结构中第一个结点____前驱结点其余每个结点有且只有______个前驱结点最后一个结点______后续结点其余每个结点有且只有_______个后续结点 3.在树形结构中树根结点没有_______结点其余每个结点有且只有_______个前驱结点叶子结点没有________结点其余每个结点的后续结点可以_________ 4.在图形结构中每个结点的前驱结点数和后续结点数可以_________ 5.线性结构中元素之间存在________关系树形结构中元素之间存在______关系图形结构中元素之间存在_______关系 6.算法的五个重要特性是_______、_______、______、_______、_______ 7.数据结构的三要素是指______、_______和________ 8.链式存储结构与顺序存储结构相比较主要优点是________________________________。

      9.设有一批数据元素为了最快的存储某元素数据结构宜用_________结构为了方便插入一个元素数据结构宜用____________结构 四、算法分析题 1.求下列算法段的语句频度及时间复杂度 参考答案 选择题1. C 2.C 3. C 4. A、B 5. C 6.C、B 二、判断题:1、√ 2、 × 3、× 4、× 5、√ 三、填空题 1、线性、树形、图形、集合 非线性网状 2、没有1没有1 3、前驱1后继任意多个 4、任意多个 5、一对一一对多多对多6、有穷性确定性可行性输入输出 7、数据元素逻辑结构存储结构 8、插入、删除、合并等操作较方便 9、顺序存储链式存储 四、算法分析题 fori1 iltn i forj 1 j lti j xx1 分析该算法为一个二重循环执行次数为内、外循环次数相乘但内循环次数不固定与外循环有关因些时间频度Tn123…nnn1/2 有 1/4≤Tn/n2≤1故它的时间复杂度为n2 即n与n2 数量级相同 2、分析下列算法段的时间频度及时间复杂度 for i1iltni for j1jltij for k1kltjk xij-k 分析算法规律可知时间频度Tn112123...123…n 由于有1/6 ≤ Tn/ n3 ≤1故时间复杂度为n3 第二章 线性表 一、选择题 1.一个线性表第一个元素的存储地址是100每个元素的长度为2则第5个元素的地址是 A110 B108C100 D120 2. 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变平均要移动 个元素。

      A64B63 C63.5 D7 3.线性表采用链式存储结构时其地址 A 必须是连续的 B 部分地址必须是连续的 C 一定是不连续的 D 连续与否均可以 4. 在一个单链表中若p所指结点不是最后结点在p之后插入s所指结点则执行 As-gtnextpp-gtnexts B s-gtnextp-gtnextp-gtnexts Cs-gtnextp-gtnextps Dp-gtnextss-gtnextp 5.在一个单链表中若删除p所指结点的后续结点则执行 Ap-gtnextp-gtnext-gtnext Bpp-gtnext p-gtnextp-gtnext-gtnext Cp-gtnextp-gtnext Dp p-gtnext-gtnext 6.下列有关线性表的叙述中正确的是 A线性表中的元素之间隔是线性关系 B线性表中至少有一个元素 C线性表中任何一个元素有且仅有一个直接前趋 D线性表中任何一个元素有且仅有一个直接后继 7.线性表是具有n个 的有限序列n≠0 A表元素 B字符 C数据元素 D数据项 二、判断题 1.线性表的链接存储表中元素的逻辑顺序与物理顺序一定相同 2.如果没有提供指针类型的语言就无法构造链式结构。

      3.线性结构的特点是只有一个结点没有前驱只有一个结点没有后继其余的结点只有一个前驱和后继 4.语句pp-gtnext完成了指针赋值并使p指针得到了p指针所指后继结点的数据域值 5.要想删除p指针的后继结点我们应该执行qp-gtnext p-gtnextq-gtnext freeq 三、填空题 1.已知P为单链表中的非首尾结点在P结点后插入S结点的语句为_______________________ 2.顺序表中逻辑上相邻的元素物理位置 相邻 单链表中逻辑上相邻的元素物理位置_________相邻 3.线性表La1a2...an采用顺序存储假定在不同的n1个位置上插入的概率相同则插入一个新元素平均需要移动的元素个数是________________________ 4.在非空双向循环链表中在结点q的前面插入结点p的过程如下 p-gtpriorq-gtprior q-gtprior-gtnextp p-gtnextq ______________________ 5.已知L是无表头结点的单链表是从下列提供的答案中选择合适的语句序列分别实现 1表尾插入s结点的语句序列是_______________________________ 2 表尾插入 s结点的语句序列是_______________________________ p-gtnexts pL Ls p-gtnexts-gtnext s-gtnextp-gtnext s-gtnextL s-gtnextnull whilep-gtnext Q pp-next whilep-gtnextnull pp-gtnext 四、算法设计题 1.试编写一个求已知单链表的数据域的平均值的函数数据域数据类型为整型。

      2.已知带有头结点的循环链表中头指针为head试写出删除并释放数据域值为x的所有结点的c函数 3.某百货公司仓库中有一批电视机按其价格从低到高的次序构成一个循环链表每个结点有价格、数量和链指针三个域现出库销售m台价格为h的电视机试编写算法修改原链表 4.某百货公司仓库中有一批电视机按其价格从低到高的次序构成一个循环链表每个结点有价格、数量和链指针三个域现新到m台价格为h的电视机试编写算法修改原链表 5.线性表中的元素值按递增有序排列针对顺序表和循环链表两种不同的存储方式分别编写C函数删除线性表中值介于a与ba≤b之间的元素 6.设Aa0a1a2...an-1Bb0b1b2...bm-1是两个给定的线性表它们的结点个数分别是n和m且结点值均是整数 若nm且 ai bi 0≤iltn 则AB 若nltm 且aibi 0≤iltn 则AltB 若存在一个j jltm jltn 且aibi 0≤iltj 若ajltbj则AltB否则 AgtB 试编写一个比较A和B的C函数该函数返回 -1或 0或 1分别表示 AltB或 AB或 AgtB 7.试编写算法删除双向循环链表中第k个结点 8.线性表由前后两部分性质不同的元素组成a0a1...an-1b0b1...bm-1m和n为两部分元素的个数若线性表分别采用数组和链表两种方式存储编写算法将两部分元素换位成b0b1...bm-1a0a1...an-1分析两种存储方式下算法的时间和空间复杂度。

      9.用循环链表作线性表a0a1...an-1和b0b1...bm-1的存储结构头指针分别为ah和bh设计C函数把两个线性表合并成形如a0b0a1b1…的线性表要求不开辟新的动态空间利用原来循环链表的结点完成合并操作结构仍为循环链表头指针为head并分析算法的时间复杂度 10.试写出将一个线性表分解为两个带有头结点的循环链表并将两个循环链表的长度放在各自的头结点的 数据域中的C函数其中线性表中序号为偶数的元素分解到第一个循环链表中序号为奇数的元素分解到第二个循环链表中 11.试写出把线性链表改为循环链表的C函数 12.己知非空线性链表中x结点的直接前驱结点为y试写出删除x结点的C函数 参考答案 一、选择题1. B 2.C 3. D 4. B 5. A 6.A 7、C 二、判断题参考答案1、×2、√3、×4、×5、√ 三、填空题1、s-gtnextp-gtnext p-gtnexts 2、一定不一定 3、n/2 4、q-gtpriorp 5、16 3 2 2 91 7 四、算法设计题1、 include quotstdio.hquot include quotmalloc.hquot typedef struct node int data struct node link NODE int averNODE head int i0sum0ave NODE p phead whilepNULL pp-gtlinki sumsump-gtdata avesum/i return ave 2、 include quotstdio.hquot include quotmalloc.hquot typedef struct node int data / 假设数据域为整型 / struct node link NODE void del_linkNODE headint x / 删除数据域为x的结点/ NODE pqs phead qhead-gtlink whileqhead ifq-gtdatax p-gtlinkq-gtlink sq -gtlink frees else pq -gtlink 3、 void delNODE headfloat priceint num NODE pqs pheadqhead-gtnext whileq-gtpriceltpriceampampqhead pq -gtnext ifq-gtpriceprice q-gtnumq-gtnum-num else printfquot无此产品quot ifq-gtnum0 p-gtnextq-gtnext freeq 4、 include quotstdio.hquot include quotmalloc.hquot typedef struct node float price int num struct node next NODE void insNODE headfloat priceint num NODE pqs pheadqhead-gtnext whileq-gtpriceltpriceampampqhead pq -gtnext ifq-gtpriceprice q-gtnumq-gtnumnum els。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.