河北科技大学——数据结构课后习题
有需要河北科技大学计算机专硕考研真题的同学,私信留下邮箱即可。
第一章、绪论作业
一、填空题
1.算法的时间复杂度除了与问题的规模有关外,还与待处理的数据的(待处理数据的初态 )有关。
2.把长度为n的单链表链接在长度为m的单链表之后的算法,其时间复杂度为( O(m) )。
3.假设时间复杂度为O(nlogn)的算法在有256个元素的数组上运行需要4ms,则在具有512个元 素的数组上运行需要( 9 )ms。
解析:此题可按照比例计算,将256和512分别代入时间复杂度计算公式然后分别比上自己需要的时间,即可求出具有512个元素的数组运行所需要的时间。这里的logn是以2为底的对数,还有一种解法:设一个系数k,根据k*256log256=4,即可求出k的值,然后再代入计算k*512log512即可得出运行时间。
二、分析算法时间复杂度
设n是偶数,下面程序段中语句y=y+i*j的执行次数是多少?该算法的时间复杂度是多少?要求列出计算公式。
for (i=1;i<=n;i++)if(2*i<=n)for (j=2*i; j<=n; j++)y=y+i*j;
解析:总执行次数为:(n-1)+(n-3)+...+3+1=n2/4;算法时间复杂度O(n^2)。这个题做的时候就是列出语句的执行次数,然后自己去找规律。
第二章、线性表作业
二、填空题
1、带头结点的循环链表L为空的条件是L->next==L 。
2.存取结构是在一个数据结构上对查询操作的时间性能的一种描述,通常有两种存取结构:顺序存取和随机存取。(还有索引存取和散列存取,共4种存取结构。)
3.将长度为n的单链表链接在长度为m的单链表之后的算法,其时间复杂度度为O(m)。
4.在循环双链表中,完成新结点S插入到结点P后面的操作,需要修改四个指针:s->prior=p ;s->next=p->next;p->next->prior=s; p->next=s ;
5. 在循环双链表中,设指针p 指向待删除结点,删除操作需要两条语句:p->prior->next=p->next ;p->next->prior=p->prior 。
6.设有一个双链表,每个结点中除了有Prior、Data和Next三个分量外,还有访问频度分量Fred,根据题意写出该结点的存储结构定义,结点名称为DulNode。
Typedef struct DulNode
{ Elemtype data;Int freq;Struct DulNode *prior,*next;
}DulNode;
三、判断题
( 错 )1、线性表的逻辑顺序与存储顺序总是一致的。
( 错)2、在单链表中要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。
( 错)3、线性表的链式存储结构优于顺序存储结构。
( 错)4、算法的原地工作的含义是指不需要任何额外的辅助空间。
四、算法设计题
1. 已知带头结点的单链表L,试写一算法将单链表逆置。(12分)
//原地将链表逆置
typedef struct LNode
{ElemType data;struct LNode *next ;
}LNode, *LinkList; 2分void Inverse( LinkList L) 1分
{p = L->next; 2 分 L->next = NULL; 1 分 while (p != NULL) 2 分 {q = p->next; 1 分 p->next = L-next; 1 分 L->next = p; 1分 p = q; 1 分 }
}//创建新链表逆置
LinkList* new,p;
new=NULL;
if(L==NULL) return 0;
p=L->next;
L->next=NULL;
while(p)
{p->next=new;new=p;p=p->next;
}
L->next=new;
2.设有不带头结点单链表L,结点结构为 ,以数据域的值非递减有序排列,现插入一个数据为e的元素,使得插入后仍然有序,编写此算法。(12分)
void InsertOrder(LinkList L, DataType e) 1分
{ListNode *s, *p, *pre;s = (ListNode *)malloc(sizeof(ListNode)); //或s=new ListNode; 1分s->data = e; 1分 if(L==NULL||e<p->data) 1分{s->next=L; L=s; return; 1分} pre = L; p = L->next; 1分 while(p!=NULL && p->data<=e) 2分 {pre = p; p = p->next; 2分 } pre->next = s; 1分 s->next = p; 1分
}
3.带头结点的单链表L,判断非空单链表是否递增有序。(12分)
Int increase(Node *first) 2分
{P=first->next; 2分 While(p->next!=NULL) 2分{q=p->next; 2分if (p->data<q->data) p=q; 2分Else return 0; 1分 }Return 1; 1分
}
4.已经带头结点的单链表,头指针为first,复制该单链表。(12分)
Node *Copy(Node *first) 2分
{Head=(Node*)malloc(sizeof(Node));//headwz 新链表的头指针 1分P=first->next;r=head; //工作指针p和尾指针r分别初始化 1分While(P!=NULL) 2分{ S=(Node*) malloc(sizeof(Node));s->data=p->data; //复制结点 2分r->next=s;r=s; //尾插法插入新链表1分p=p->next; 1分}r->next=NULL; 1分 return head; 1分
}
5. 假设在长度大于1的循环单链表中,既无头结点也无头指针,S为指向单链表中某个结点的指针,试编写算法删除结点S的前驱结点;写出该结点的存储结构定义。(12分)
void Del(Node *s) 2分
{p=s; 2分while(p->next->next != s) 2分p=p->next; 1分r=p->next; 1分p->next=s; 2分free(r); 2分
}
河北科技大学——数据结构课后习题相关推荐
- 数据结构实践(有的数据结构课后习题答案),红色是答案
第1章 绪论 习题 1.简述下列概念:数据.数据元素.数据项.数据对象.数据结构.逻辑结构.存储结构.抽象数据类型. 2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系. 3 ...
- 数据结构课后习题重点难点易考点(持续更新)
目录 第一章 绪论 第二章 线性表 第三章 栈和队列 第四章 串.数组和广义表 第五章 数和二叉树 第六章 图 第七章 查找 第八章 排序 第一章 绪论 1.选择题 (1)与数据元素本身的形式.内容. ...
- 浙大数据结构课后习题 练习一 7-1 Maximum Subsequence Sum (25 分)
Given a sequence of K integers { N1, N2, ..., NK }. A continuous subsequence is defined to ...
- 数据结构课后习题答案
算法题 1.试写一个插入算法int insertPost_seq(palist ,p,x), 在palist 所指的顺序表中,下标为p的元素之后,插入一个值为x的元素,返回插入成功与否的标志. int ...
- 数据结构(python语言描述)课后题答案_数据结构课后习题及答案
2.2. 当对一个线性表经常进行的是插入和删除操作时,采用链式存储结构为宜. 2.3. 当对一个线性表经常进行的是存取操作,而很少进行插入和删除操作时,最好采用顺序存储结构. 2.6. 带头结点的单链 ...
- 《python程序设计教程》第四章常用数据结构课后习题
1.从键盘输入一个正整数列表,以-1结束,分别计算列表中奇数和偶数的和. n = int(input("请输入一个正整数:")) list3 = [] while n != -1: ...
- 数据结构(C语言版 第2版)课后习题答案 严蔚敏 等 编著
数据结构(C语言版 第2版)课后习题答案 严蔚敏 等 编著,仅供参考,还是自己认真做了再看 第1章 绪论 5.选择题 (1)在数据结构中,从逻辑上可以把数据结构分成( C ). A.动态结构和静态 ...
- 算法第四版课后习题答案 西安电子科技大学 计算机学院 算法课
来源于西电计算机15级学长学姐,算法第四版课后习题答案 西安电子科技大学 计算机学院 算法课. 再推荐一个好的看答案的地方,每一题都有,只是还没有更新完成. 地址:https://alg4.ike ...
- 北航数据结构与c语言2017答案,2022年北京航空航天大学991数据结构与C语言程序设计考研资料汇总:参考书目-历年考研真题-模拟题库-笔记和课后习题详解...
北京航空航天大学软件学院官网网址: 991数据结构与C语言程序设计考研参考书目: 谭浩强<C程序设计>(第4版)笔记和课后习题详解 谭浩强<C程序设计>(第4版)精讲班[教材精 ...
最新文章
- opencv c++ 寻找矩形框_基于Python的OpenCV人脸检测!OpenCV太强了!
- PCL特征点与配准(1)
- 2w字大白话讲解Spring Cloud,必须收藏
- yii2 Html::a
- java mysql 操作类_Java 数据库简单操作类
- D-hdu 1465 不容易系列之一(递推)
- 管理学习(2)——职场中最重要的四件事
- PyQt5入门——删除、清空layout布局中的所有对象(含常见问题详解)
- 数据结构与算法笔记(二) 线性表(数组描述)
- 在linux中,boot与uboot有什么区别?
- 波音可以自己做安全认证,错误在于故意掩盖问题
- SVG 学习四 基础API
- 日语词频分析——mecab使用
- Codecademy.com学习Python
- 值得学习的言语 | 对话技巧 | 开场白
- 银行wifi认证登录怎么样
- 带你一起撸一遍 nodejs 常用核心模块(一)
- linux运行魔兽世界,暴雪内部就这么玩:Linux运行《魔兽世界》教程
- 【欢迎来怼】 Beta发布事后诸葛亮会议
- android直播切换浮窗,直播悬浮窗怎么设置
热门文章
- Iris recognition papers in the top journals in 2017
- 金蝶系统服务器要求,金蝶服务器安装及其相关要求.doc
- java compile_java中的CompileAPI入门及使用
- scrollwidth ,clientwidth ,offsetwidth 三者的区别
- Ubuntu下安装SSH服务
- 乌班图 之 常用操作命令(二)
- 9款超绚丽的HTML5/CSS3应用和动画特效
- Android JNI和NDK学习(5)--JNI分析API
- 笔记本电脑频繁自动重启_笔记本电脑自动重启是什么原因
- php图片视频,PHP中使用php5-ffmpeg撷取视频图片实例