有需要河北科技大学计算机专硕考研真题的同学,私信留下邮箱即可。

第一章、绪论作业

一、填空题

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.对顺序存储的线性表,设其长度为 20,在任何位置上插入或删除操作都是等概率的。插入
一个元素时平均要移动表中的(A)个元素。
A.10                              B.9                             C.11                     D.12
2、若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采
用(D)存储方式最节省运算时间。
A.单链表        B.仅有头指针的单循环链表       C.双链表       D.仅有尾指针的单循环链表 
 
3、对线性表采用折半查找法,该线性表必须(B)。
A.采用顺序存储结构                                 B.采用顺序存储结构,且元素按值有序
C.采用链式存储结构                                 D.采用链式存储结构,且元素按值有序
4.线性表采用链式存储时,其地址(D) 。
A. 必须是连续的   B. 部分地址必须是连续的   C. 一定是不连续的    D. 连续与否均可以
5.对顺序存储的线性表,设其长度为 n,在任何位置上插入或删除操作都是等概率的。插入
一个元素时平均要移动表中的(A)个元素。
A. n/2                  B.(n+1)/2                   C.(n-1)/2                      D. n
6.在有 15 个元素的顺序表中,删除一个元素时,平均移动元素的次数为(B)。
A.14                  B.7                         C.15                          D.8

二、填空题

1、带头结点的循环链表L为空的条件是L->next==L 。

2.存取结构是在一个数据结构上对查询操作的时间性能的一种描述,通常有两种存取结构:顺序存取和随机存取。(还有索引存取和散列存取,共4种存取结构。)

3.将长度为n的单链表链接在长度为m的单链表之后的算法,其时间复杂度度为O(m)

4.在循环双链表中,完成新结点S插入到结点P后面的操作,需要修改四个指针:s->prior=p ;s->next=p->nextp->next->prior=s;  p->next=s ;

5. 在循环双链表中,设指针p 指向待删除结点,删除操作需要两条语句:p->prior->next=p->nextp->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章  绪论 习题 1.简述下列概念:数据.数据元素.数据项.数据对象.数据结构.逻辑结构.存储结构.抽象数据类型. 2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系. 3 ...

  2. 数据结构课后习题重点难点易考点(持续更新)

    目录 第一章 绪论 第二章 线性表 第三章 栈和队列 第四章 串.数组和广义表 第五章 数和二叉树 第六章 图 第七章 查找 第八章 排序 第一章 绪论 1.选择题 (1)与数据元素本身的形式.内容. ...

  3. 浙大数据结构课后习题 练习一 7-1 Maximum Subsequence Sum (25 分)

    Given a sequence of K integers { N​1​​, N​2​​, ..., N​K​​ }. A continuous subsequence is defined to ...

  4. 数据结构课后习题答案

    算法题 1.试写一个插入算法int insertPost_seq(palist ,p,x), 在palist 所指的顺序表中,下标为p的元素之后,插入一个值为x的元素,返回插入成功与否的标志. int ...

  5. 数据结构(python语言描述)课后题答案_数据结构课后习题及答案

    2.2. 当对一个线性表经常进行的是插入和删除操作时,采用链式存储结构为宜. 2.3. 当对一个线性表经常进行的是存取操作,而很少进行插入和删除操作时,最好采用顺序存储结构. 2.6. 带头结点的单链 ...

  6. 《python程序设计教程》第四章常用数据结构课后习题

    1.从键盘输入一个正整数列表,以-1结束,分别计算列表中奇数和偶数的和. n = int(input("请输入一个正整数:")) list3 = [] while n != -1: ...

  7. 数据结构(C语言版 第2版)课后习题答案 严蔚敏 等 编著

    数据结构(C语言版 第2版)课后习题答案 严蔚敏 等 编著,仅供参考,还是自己认真做了再看 第1章  绪论 5.选择题 (1)在数据结构中,从逻辑上可以把数据结构分成(  C ). A.动态结构和静态 ...

  8. 算法第四版课后习题答案 西安电子科技大学 计算机学院 算法课

    来源于西电计算机15级学长学姐,算法第四版课后习题答案 西安电子科技大学 计算机学院   算法课. 再推荐一个好的看答案的地方,每一题都有,只是还没有更新完成. 地址:https://alg4.ike ...

  9. 北航数据结构与c语言2017答案,2022年北京航空航天大学991数据结构与C语言程序设计考研资料汇总:参考书目-历年考研真题-模拟题库-笔记和课后习题详解...

    北京航空航天大学软件学院官网网址: 991数据结构与C语言程序设计考研参考书目: 谭浩强<C程序设计>(第4版)笔记和课后习题详解 谭浩强<C程序设计>(第4版)精讲班[教材精 ...

最新文章

  1. opencv c++ 寻找矩形框_基于Python的OpenCV人脸检测!OpenCV太强了!
  2. PCL特征点与配准(1)
  3. 2w字大白话讲解Spring Cloud,必须收藏
  4. yii2 Html::a
  5. java mysql 操作类_Java 数据库简单操作类
  6. D-hdu 1465 不容易系列之一(递推)
  7. 管理学习(2)——职场中最重要的四件事
  8. PyQt5入门——删除、清空layout布局中的所有对象(含常见问题详解)
  9. 数据结构与算法笔记(二) 线性表(数组描述)
  10. 在linux中,boot与uboot有什么区别?
  11. 波音可以自己做安全认证,错误在于故意掩盖问题
  12. SVG 学习四 基础API
  13. 日语词频分析——mecab使用
  14. Codecademy.com学习Python
  15. 值得学习的言语 | 对话技巧 | 开场白
  16. 银行wifi认证登录怎么样
  17. 带你一起撸一遍 nodejs 常用核心模块(一)
  18. linux运行魔兽世界,暴雪内部就这么玩:Linux运行《魔兽世界》教程
  19. 【欢迎来怼】 Beta发布事后诸葛亮会议
  20. android直播切换浮窗,直播悬浮窗怎么设置

热门文章

  1. Iris recognition papers in the top journals in 2017
  2. 金蝶系统服务器要求,金蝶服务器安装及其相关要求.doc
  3. java compile_java中的CompileAPI入门及使用
  4. scrollwidth ,clientwidth ,offsetwidth 三者的区别
  5. Ubuntu下安装SSH服务
  6. 乌班图 之 常用操作命令(二)
  7. 9款超绚丽的HTML5/CSS3应用和动画特效
  8. Android JNI和NDK学习(5)--JNI分析API
  9. 笔记本电脑频繁自动重启_笔记本电脑自动重启是什么原因
  10. php图片视频,PHP中使用php5-ffmpeg撷取视频图片实例