- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
习题一
填空题
( 数据元素、或元素、或结点、或顶点、或记录 )是数据的基本单位,在计算机程序中作为一个整体进行考虑和处理。
(数据项、或字段 )是数据的最小单位,(数据元素 )是讨论数据结构时涉及的最小数据单位。
从逻辑关系上讲,数据结构主要分为 ( 集合 ) 、 ( 线性结构 ) 、 ( 树结构 ) 和( 图) 。
数据的存储结构主要有( 顺序存储结构 )和(链式存储结构 )两种基本方法,不论哪种存储结构,都要存储两方面的内容: (数据元素 )和(它们之间的关系 )。
算法具有 5 个特性,分别是( 输入)、(输出)、(有穷性)、(确定性)、(可行性)。
算法的描述方法通常有 ( 自然语言 ) 、( 流程图 ) 、 ( 程序设计语言 ) 、( 伪代码 )4 种,其中, ( 伪代码 ) 被称为算法语言。
一般情况下,一个算法的时间复杂度是算法( 输入规模 )的函数。
设待处理问题的规模为n, 若一个算法的时间复杂度为一个常数,则表示成数量级的形式为
(O(1)) ,若为 n*log 25n, 则表示成数量级的形式为 ( O(n*log 2n) ) 。
2. 选择题 : (1) C, D (2) B (3) B (4) A (5) D (6) A (7) C (8) C, E
习题二
填空题
在顺序表中, 等概率情况下, 插入和删除一个元素平均需移动 ( 表长的一半 ) 个元素,具体移动元素的个数与 ( 表的长度 ) 和 ( 数据元素所在的位置 ) 有关。
一个顺序表的第一个元素的存储地址是 100,每个数据元素的长度是 2,则第 5 个数据元素的存储地址是( 108)。
设单链表中指针 p 指向单链表的一个非空结点 A,若要删除结点 A 的直接后继,则需要修改指针
的操作为( p->next=(p->next)->next, 或者 q=p->next; p->next=q->next )。
单链表中设置头结点的作用是 ( 方便运算 , 减少程序的复杂性,使得空表和非空表处理统一 ) 。
非空的循环单链表由头指针 head 指示,则其尾结点 ( 由指针 p 所指 ) 满足 ( p->next=head ) 。
(6) 在 有 尾 指 针 rear 指 示 的 循 环 单 链 表 中 , 在 表 尾 插 入 一 个 结 点 s 的 操 作 序 列 是
( s->next=rear->next; rear->next=s; rear=s ),删除开始结点的操作序列是 ( q=rear->next->next;
rear->next->next=q->next; delete q;
)。
注:假设此循环单链表有表头结点
(7) 一个具有 n 个结点的单链表, 在 p 所指结点后插入一个新结点 s 的时间复杂性为 ( O(1)
定值 x 的结点后插入一个新结点的时间复杂性为 ( O(n ) )。
);在给
可由一个尾指针惟一确定的链表有 ( 循环链表 ) 、 ( 双链表 ) 、( 双循环链表 ) 。
2. 选择题 : (1) A,B (2) D (3) B (4) A (5) A (6) D (7) B (8) B (9) C (10) B (11)
B (12) D (13) A (14) A
算法设计
设计一个时间复杂度为 O(n) 的算法。实现将数组 A[n] 中所有元素循环左移 k 个位置。
算法思想:要使 a1 akak+1 an -> a k+1 ana1 ak, 可以先让 a1 akak+1 an->a k a1an ak+1, 再让 ak a 1 an ak+1 -> a k+1 ana1 ak ,参见第 1 章 16 页的思想火花
算法: void converse(T a[], int i, int j){
for(s=i; s<=(i+j)/2;s++) 解法 1:void tiaozhen(T A[],int n)
{ s=0; t=n-1;
while(s<t)
{ while( A[s]%2!=0) s++; 链表的程序如下,设单链表有表头结点 .
void LinkList::converse()
{ p=first->next;
first->next=NULL;
while(p){
q=p->next; p->next=first->next;
first->next=p;p=q;
}
}
假设在长度大于 1 的循环链表中,既无头结点也无头指针, s 为指向链表中某个结点的指针,试编写算法删除结点 s 的前驱结点。
void LinkList::deleteS(Node<T> *s)
{p=s;
while(p->next->next!=s) p=p->n
您可能关注的文档
- 撤回仲裁申请书范文.doc
- 操作系统课程设计报告总结计划.doc
- 操作系统进程调度学习练习及答案.doc
- 擦桌子的作文400字数300字数200字数.doc
- 支教活动总结计划报告总结计划.doc
- 收养协议书范文范例.doc
- 收款流程大纲纲要图.doc
- 改进门诊排队等候时间过长解决实施方案.doc
- 放射科温湿度学习记录标准表格格.doc
- 故障报告总结计划标准模板.doc
- 山东省临沂市沂水县2023-2024学年高一下学期期中考试历史试题.docx
- 江苏省泰州市靖江高级中学2023-2024学年高二下学期4月期中考试物理试题(无答案).docx
- 新疆部分名校2023-2024学年高二下学期期中联合考试语文试题.docx
- 湖南省岳阳市岳阳县第一中学2023-2024学年高三下学期4月期中考试数学试题.docx
- 山东省烟台市2023-2024学年高二下学期4月期中生物试题(无答案).docx
- 江苏省靖江高级中学2023-2024学年高二下学期期中地理试题(无答案).docx
- 四川省甘孜藏族自治州某重点中学2023-2024学年高一下学期4月期中考试物理试题.docx
- 湖北省武汉市华中师范大学第一附属中学2023-2024学年高二下学期4月期中英语试题(无答案).docx
- 四川省成都市金牛区成都市实验外国语学校2024年高三三模考试生物试题.docx
- 浙江省宁波市北仑中学2023-2024学年高二下学期期中考试物理试题.docx
文档评论(0)