数据结构各章习题及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

链表,每个结点有价格、数量和链指针三个域。现出库(销售)m 台价格为 h 的电视机,试编写算法修改原链表。 4.某 百 货 公 司 仓 库 中 有 一 批 电 视 机 , 按 其 价 格 从 低 到 高 的 次 序 构 成 一 个 循 环 链表,每个结点有价格、数量和链指针三个域。现新到 m 台价格为 h 的电视 机,试编写算法修改原链表。 5.线 性 表 中 的 元 素 值 按 递 增 有 序 排 列 , 针 对 顺 序 表 和 循 环 链 表 两 种 不 同 的 存 储方式,分别编写 C 函数删除线性表中值介于 a 与 b(a≤b)之间的元素。 6.设 A=(a0,a1,a2,...,an-1),B=(b0,b1,b2,...,bm-1)是两个给定的线性表, 它们的结点个数分别是 n 和 m,且结点值均是整数。 若 n=m,且 ai= bi (0≤i<n ),则 A=B; 若 n<m ,且 ai=bi (0≤i<n ),则 A<B; 若存在一个 j, j<m ,j<n ,且 ai=bi (0≤i<j ), 若 aj<bj,则 A<B, 否则 A>B。 试编写一个比较 A 和 B 的 C 函数,该函数返回 -1 或 0 或 1,分别表示 A<B 或 A=B 或 A>B。 7.试编写算法,删除双向循环链表中第 k 个结点。 8.线 性 表 由 前 后 两 部 分 性 质 不 同 的 元 素 组 成 (a0,a1,...,an-1,b0,b1,...,bm-1),m 和 n 为两部分元素的个数,若线性表分 别 采 用 数 组 和 链 表 两 种 方 式 存 储 ,编 写 算 法 将 两 部 分 元 素 换 位 成 (b0,b1,...,bm-1,a0,a1,...,an-1),分 析 两 种 存 储 方 式 下 算 法 的 时 间 和 空 间 复杂度。 9.用 循 环 链 表 作 线 性 表 (a0,a1,...,an-1)和( b0,b1,...,bm-1)的 存 储 结 构 , 头指针分别为 ah 和 bh,设计 C 函数,把两个线性表合并成形如 ( a0,b0,a1,b1,…)的 线 性 表 ,要 求 不 开 辟 新 的 动 态 空 间 ,利 用 原 来 循 环 链 表 的结点完成合并操作,结构仍为循环链表,头指针为 head,并分析算法的时间 复杂度。 10.试 写 出 将 一 个 线 性 表 分 解 为 两 个 带 有 头 结 点 的 循 环 链 表 ,并 将 两 个 循 环 链 表 的 长 度 放 在 各 自 的 头 结 点 的 数 据 域 中 的 C 函 数 。其 中 ,线 性 表 中 序 号 为 偶 数 的 元 素 分 解 到 第 一 个 循 环 链 表 中 ,序 号 为 奇 数 的 元 素 分 解 到 第 二 个 循 环 链 表 中。
四、算法分析题 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、顺序存储;链式存储
素 物 理 位 置 _________相 邻 。 3.线性表 L=(a1,a2,...,an)采用顺序存储,假定在不同的 n+1 个位 置上插入的概率相同,则插入一个新元素平均需要移动的元素个数是 ________________________ 4.在非空双向循环链表中,在结点 q 的前面插入结点 p 的过程如下: p->prior=q->prior; q->prior->next=p; p->next=q; ______________________; 5.已知 L 是无表头结点的单链表,是从下列提供的答案中选择合适的语句序 列,分别实现: (1)表尾插入 s 结点的语句序列是_______________________________ (2) 表尾插入 s 结点的语句序列是_______________________________
1.数 据 逻 辑 结 构 包 括 ________、________、_________ 和 _________四 种 类 型 , 其 中 树 形 结 构 和 图 形 结 构 合 称 为 _____。 2.在 线 性 结 构 中 ,第 一 个 结 点 ____前 驱 结 点 ,其 余 每 个 结 点 有 且 只 有 ______个 前 驱 结 点 ; 最 后 一 个 结 点 ______后 续 结 点 ,其 余 每 个 结 点 有 且 只 有 _______个 后续结点。 3.在 树 形 结 构 中 ,树 根 结 点 没 有 _______结 点 ,其 余 每 个 结 点 有 且 只 有 _______ 个 前 驱 结 点 ; 叶 子 结 点 没 有 ________结 点 ,其 余 每 个 结 点 的 后 续 结 点 可 以 _________。 4.在 图 形 结 构 中 ,每 个 结 点 的 前 驱 结 点 数 和 后 续 结 点 数 可 以 _________。 5.线 性 结 构 中 元 素 之 间 存 在 ________关 系 ,树 形 结 构 中 元 素 之 间 存 在 ______ 关 系 ,图 形 结 构 中 元 素 之 间 存 在 _______关 系 。 6.算 法 的 五 个 重 要 特 性 是 _______、 _______、 ______、 _______、 _______。 7.数 据 结 构 的 三 要 素 是 指 ______、 _______和 ________。 8.链 式 存 储 结 构 与 顺 序 存 储 结 构 相 比 较 ,主 要 优 点 是 ________________________________。 9.设 有 一 批 数 据 元 素 ,为 了 最 快 的 存 储 某 元 素 ,数 据 结 构 宜 用 _________结 构 , 为 了 方 便 插 入 一 个 元 素 ,数 据 结 构 宜 用 ____________结 构 。
3.线性表采用链式存储结构时,其地址( )。 (A) 必须是连续的 (B) 部分地址必须是连续的 (C) 一定是不连续的 (D) 连续与否均可以 4. 在 一 个 单 链 表 中 ,若 p 所 指 结 点 不 是 最 后 结 点 ,在 p 之 后 插 入 s 所 指 结 点 , 则执行( ) (A)s->next=p;p->next=s; (B) s->next=p->next;p->next=s; (C)s->next=p->next;p=s; (D)p->next=s;s->next=p; 5.在一个单链表中,若删除 p 所指结点的后续结点,则执行( ) (A)p->next=p->next->next; (B)p=p->next; p->next=p->next->next; (C)p->next=p->next; (D)p =p->next->next; 6.下列有关线性表的叙述中,正确的是( ) ( A) 线 性 表 中 的 元 素 之 间 隔 是 线 性 关 系 ( B) 线 性 表 中 至 少 有 一 个 元 素 ( C) 线 性 表 中 任 何 一 个 元 素 有 且 仅 有 一 个 直 接 前 趋 ( D) 线 性 表 中 任 何 一 个 元 素 有 且 仅 有 一 个 直 接 后 继 7.线性表是具有 n 个( )的有限序列(n≠0) (A)表元素 (B)字符 (C)数据元素 (D)数据项 二、判断题 1.线性表的链接存储,表中元素的逻辑顺序与物理顺序一定相同。( ) 2.如果没有提供指针类型的语言,就无法构造链式结构。( ) 3.线 性 结 构 的 特 点 是 只 有 一 个 结 点 没 有 前 驱 , 只 有 一 个 结 点 没 有 后 继 , 其 余 的结点只有一个前驱和后继。( ) 4.语句 p=p->next 完成了指针赋值并使 p 指针得到了 p 指针所指后继结点的 数据域值。( ) 5.要想删除 p 指针的后继结点,我们应该执行 q=p->next ; p->next=q->next; free(q)。( ) 三、填空题 1.已知 P 为单链表中的非首尾结点,在 P 结点后插入 S 结点的语句为: _______________________ 。 2.顺序表中逻辑上相邻的元素物理位置( )相邻, 单链表中逻辑上相邻的元
四、算法设计题 1.试 编 写 一 个 求 已 知 单 链 表 的 数 据 域 的 平 均 值 的 函 数 ( 数 据 域 数 据 类 型 为 整 型)。 2.已知带有头结点的循环链表中头指针为 head,试写出删除并释放数据域值 为 x 的所有结点的 c 函数。 3.某 百 货 公 司 仓 库 中 有 一 批 电 视 机 , 按 其 价 格 从 低 到 高 的 次 序 构 成 一 个 循 环
第一章 绪论
一、选择题 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.一个线性表第一个元素的存储地址是 100,每个元素的长度为 2,则第 5 个元 素的地址是( ) (A)110 (B)108(C)100 (D)120 2. 向 一 个 有 127 个 元 素 的 顺 序 表 中 插 入 一 个 新 元 素 并 保 持 原 来 顺 序 不 变 ,平 均要移动( )个元素。 (A)64(B)63 (C)63.5 (D)7
1. p->next=s; 2. p=L; 3. L=s; 4. p->next=s->next; 5. s->next=p->next; 6. s->next=L; 7. s->next=null; 8. while(p->next!= Q)? p=p-next; 9. while(p->next!=null) p=p->next;
四、算法分析题
for(i=1; i<=n; i++) for(j =1; j <=i ; j++) x=x+1; 分析:该算法为一个二重循环,执行次数为内、外循环次数相乘,但内循环 次数不固定,与外循环有关,因些,时间频度 T(n)=1+2+3+…+n=n*(n+1)/2 有 1/4≤T(n)/n2≤1,故它的时 间复杂度为O (n2), 即T(n)与 n2 数量级相 同。 2、分析下列算法段的时间频度及时间复杂度 for (i=1;i<=n;i++) for (j=1;j<=i;j++) for ( k=1;k<=j;k++) x=i+j-k; 分析算法规律可知时间频度 T(n)=1+(1+2)+(1+2+3)+...+(1+2+3+…+n) 由于有 1/6 ≤ T(n)/ n3 ≤1,故时间复杂度为O(n3)
相关文档
最新文档