北理工18秋学期《实用数据结构与算法》在线作业

合集下载

北京理工大学《数据结构》试题及答案(B卷)

北京理工大学《数据结构》试题及答案(B卷)

一、单项选择题1.算法必须具备的三个特性是( )。

A.可执行性、可移植性、可扩充性B.可执行性、确定性、有穷性C.确定性、有穷性、稳定性D.易读性、稳定性、安全性2.下列数据中,( )是非线性数据结构。

A.栈B.队列C.完全二叉树D.顺序表3.算法分析的两个方面是( )。

A.空间复杂度和时间复杂度B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性4.非空的循环单链表head的尾结点p满足( )。

A.p->next==head B.p->next==NULLC.p==NULL D.p==head5.在单链表指针为p的结点之后插入指针为s的结点,正确的操作是( )。

A.p->next=s;s->next=p->next; B.s->next=p->next;p->next=s;C.p->next=s;p->next=s->next; D.p->next=s->next;p->next=s;6.按照二叉树的定义,具有3个结点的二叉树有( )种。

A.3 B.4C.5 D.67.在一个有向图中,所有顶点的入度之和是所有顶点的出度之和的( )倍。

A.1/2 B.1C.2 D.48.二叉排序树是( )。

A.每一分支结点的度均为2的二叉树B.中序遍历得到一升序序列的二叉树C.按从左到右顺序编号的二叉树D.每一分支结点的值均小于左子树上所有结点的值,大于右子树上所有结点的值9.若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别是( )。

A.1和 5 B.2和4C.4和2 D.5和110.下列说法中正确的是( )。

A.堆栈是在两端操作、先进后出的线性表B.堆栈是在一端操作、先进先出的线性表C.队列是在一端操作、先进先出的线性表D.队列是在两端操作、先进先出的线性表11.不带头结点的单链表head为空的判定条件是( )。

北理工《实用数据结构与算法》在线作业

北理工《实用数据结构与算法》在线作业

北理工《实用数据结构与算法》在线作业一、单选题:1.(单选题)当两个元素比较出现反序时就相互交换位置的排序方法称为()。

(满分A归并排序B选择排序C交换排序D插入排序正确:C2.(单选题)设数组Data[0..m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为() (满分Afront=front+1Bfront=(front+1)%mCrear=(rear+1)%mDfront=(front+1)%(m+1)正确:D3.(单选题)快速排序方法在()情况下最不利于发挥其长处。

(满分A被排序的数据量太大B被排序数据中含有多个相同值C被排序数据已基本有序D被排序数据数目为奇数正确:C4.(单选题)具有65个结点的完全二叉树其深度为(根的层次号为1)()。

(满分A8B7C6D5正确:5.(单选题)稀疏矩阵一般的压缩存储方法有两种,即()。

(满分A二维数组和三维数组B三元组表和散列表C三元组表和十字链表D散列表和十字链表正确:6.(单选题)从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为()排序法。

(满分:)A插入B选择C交换D二路归并正确:7.(单选题)下列排序方法中效率最高的排序方法是()。

(满分:)A起泡排序B堆排序C快速排序D直接插入排序正确:8.(单选题)栈与一般的线性表的区别在于()。

(满分:)A数据元素的类型不同B运算是否受限制C数据元素的个数不同D逻辑结构不同正确:9.(单选题)图的存储结构不包括() (满分:)A数组表示B邻接表C邻接多重表D孩子兄弟表示正确:10.(单选题)一个数组第一个元素的存储地址是100,每个数组元素的长度为2,则第5个元素的地址是()。

(满分:)A110B108C100D120正确:11.(单选题)具有n个顶点的有向完全图有()条弧。

(满分:)AnBn*(n-1)Cn*(n+1)Dn*n正确:12.(单选题)具有2000个结点的二叉树,其高度至少为()。

奥鹏北理工《数据结构与算法》在线作业标准答案

奥鹏北理工《数据结构与算法》在线作业标准答案
B数组的读、写运算可以读取或修改一个数据元素的一部分或一个整体
C数组的读、写运算只能读取或修改一个数据元素的一部分
D数组的读、写运算只能读取或修改一个数据元素整体
【答案】:B
14.用链接方式存储的队列,在进行插入运算时()。
【选项】:
A仅修改头指针
B头、尾指针都要修改
C仅修改尾指针
D头、尾指针可能都要修改
D队列是在两端操作、后进先出的线性表
【答案】:
3.以下关于线性表的说法不正确的是()。
【选项】:
A线性表中的数据元素可以是数字、字符、记录等不同类型
B线性表中包含的数据元素个数不是任意的
C线性表中的每个结点都有且只有一个直接前趋和直接后继
D存在这样的线性表:表中各结点都没有直接前趋和直接后继
【答案】:C
【选项】:
A栈顶
B栈底
C任意位置
D指定位置
【答案】:A
32.下列排序方法中,排序趟数与序列的原始状态有关的方法是()。
【答案】:D
15.下列说法哪个是不正确的()。
【选项】:
A快速排序属于不稳定排序。
B希尔排序属于不稳定排序。
C直接插入排序属于不稳定排序。
D堆排序属于不稳定排序。
【答案】:
16.设有一个二维数A[m][n],以行序为主序存储。假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,则A[4][5]在()位置,(10)表明用10进数表示。
D选择排序
【答案】:C
29.当待排序列基本有序时,下列排序方法中()最好。
【选项】:
A直接插入排序
B快速排序
C堆排序
D归并排序

北京理工大学《数据结构与算法设计》实验报告完整版

北京理工大学《数据结构与算法设计》实验报告完整版

《数据结构与算法设计》实验报告——实验一学院:班级:学号:姓名:一、实验目的1.通过实验实践、巩固线性表的相关操作;2.熟悉VC环境,加强编程、调试的练习;3.用C语言编写函数,实现循环链表的建立、插入、删除、取数据等基本操作;4.理论知识与实际问题相结合,利用上述基本操作实现约瑟夫环。

二、实验内容1、采用单向环表实现约瑟夫环。

请按以下要求编程实现:①从键盘输入整数m,通过create函数生成一个具有m个结点的单向环表。

环表中的结点编号依次为1,2,……,m。

②从键盘输入整数s(1<=s<=m)和n,从环表的第s个结点开始计数为1,当计数到第n个结点时,输出该第n结点对应的编号,将该结点从环表中消除,从输出结点的下一个结点开始重新计数到n,这样,不断进行计数,不断进行输出,直到输出了这个环表的全部结点为止。

三、程序设计1、概要设计为实现上述程序功能,应用单向环表寄存编号,为此需要建立一个抽象数据类型:单向环表。

(1)、单向环表的抽象数据类型定义为:ADT Joseph{数据对象:D={ai|ai∈ElemSet,i=1,2,3……,n,n≥0}数据关系:R1={ <ai-1,ai>|ai∈D,i=1,2,……,n}基本操作:create(&L,n)操作结果:构造一个有n个结点的单向环表L。

show(L)初始条件:单向环表L已存在。

操作结果:按顺序在屏幕上输出L的数据元素。

Josephf( L,m,s,n)初始条件:单向环表L已存在, s>0,n>0,s<m。

操作结果:返回约瑟夫环的计算结果。

}ADT Joseph(2)、主程序流程主程序首先调用create(&L,n)函数,创建含有m个节点的单向环表L,然后调用show(L)函数,顺序输出链表中的数据,最后调用Josephf( L,m,s,n)函数,依次输出报的数。

(3)、函数调用关系图2、详细设计(1)、数据类型设计typedef int ElemType; //定义元素类型typedef struct Lnode{ElemType data;struct Lnode *next;}Lnode,*Linklist; //定义节点类型,指针类型(2)、操作算法程序实现:void create(Linklist &L,int m){//生成一个具有m个结点的单向环表,环表中的结点编号依次为1,2,……,m Linklist h,p;L=(Linklist)malloc(sizeof(Lnode));L->data = 1;h=L;for(int i=2;i<=m;i++){p = (Linklist)malloc(sizeof(Lnode));p->data = i; //生成新节点,数据为节点编号h->next = p;h = p; //插入链表}h->next = L; //形成循环链表}void show(Linklist L,int m){//从第一个节点开始依次输出节点编号printf("The numbers of the list are: \n"); //提示用户Linklist h;h=L;for(int i=1;i<=m;i++){printf("%d ",h->data);h = h->next;}printf("\n");}void Josephf(Linklist &L,int m,int s,int n){//实现约瑟夫环Linklist h,q;h = L;q = L;while(h->data != s) //定位开始的节点h = h->next;while(q->next!=h) //定位在开始位置的上一个节点q = q->next;for(int j=1;j<=m;j++){int i=1;while(i<n){q=q->next;i++;}printf("%d ",q->next->data); //依次输出报号为n的节点q->next = q->next->next; //删除已输出节点}printf("\n");}(3)、主程序的代码实现:int main(){int s,m,n;Linklist L;printf("请输入节点数m:\n");scanf("%d",&m);create(L,m); //建立循环链表show(L,m); //输出链表数据printf("请输入起始位置s:\n");scanf("%d",&s);printf("请输入报的数n:\n");scanf("%d",&n);Josephf(L,m,s,n); //输出所报数字return 0;}四、程序调试分析1.引用标识符&不符合C语言语法,应使用C++;2.为了实现循环链表,建立时应该不设头结点且第一个节点就存储编号数据;3.删除节点时要定位到前一个指针,所以在定位开始位置后还要再定位到前一个指针;4.输出时要注意增加“ ”(空格)和“\n”(换行),使输出易于辨识。

北理工《数据结构与算法》在线作业-0004【20春答案47118】

北理工《数据结构与算法》在线作业-0004【20春答案47118】
24.栈与一般的线性表的区别在于。 A.数据元素的类型不同 B.运算是否受限制
C.数据元素的个数不同 D.逻辑结构不同
25.若构造一棵具有n个结点的二叉排序树,最坏情况下,其深度不会超过。 A.n/2 B.n C.n1/2 D.n1
26.线性链表是通过方式表示元素之间的关系 A.后继元素地址 B.元素的存储顺序 C.左、右孩子地址 D.元素的相对存储位置
8.若某线性表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用哪一 种存储结构算法的时间效率最高
A.单链表 B.给出表头指针的单循环链表 C.双向链表 D.给出表尾指针的双向循环链表
9.稀疏矩阵一般的压缩存储方法有两种,即。 A.二维数组和三维数组 B.三元组表和散列表 C.三元组表和十字链表 D.散列表和十字链表
32.具有 n 个顶点的有向完全图有条弧。 A.n B.n*n-1
C.n*n1 D.n*n
33.设连通图G中的边集E{a,b,a,e,a,c,b,e,e,d,d,f,f,c},则从顶点a出发可以得到 一种深度优先遍历的顶点序列为 A.abedfc B.acfebd C.aebdfc D.aedfcb
18.数组的数据元素类型DataType可根据实际需要而定义。以下说法完全正确的是 A.数组的读运算可以读取一个数据元素整体,写运算只能修改一个数据元素的一部分 B.数组的读、写运算可以读取或修改一个数据元素的一部分或一个整体 C.数组的读、写运算只能读取或修改一个数据元素的一部分 D.数组的读、写运算只能读取或修改一个数据元素整体
19.是HASH查找的冲突处理方法。 A.求余法 B.平方取中法 C.二分法 D.开放定址法
20.对线性表进行二分查找时,要求线性表必须。 A.以顺序方式存储 B.以链接方式存储 C.以顺序方式存储,且结点按关键字有序排列 D.以链接方式存储,且结点按关键字有序排列

奥鹏北理工《数据结构与算法》在线作业1标准答案

奥鹏北理工《数据结构与算法》在线作业1标准答案
A.顺序存储结构
B.链式存储结构
C.线性链表
D.栈
正确答案:A
13.以下关于线性表的说法不正确的是()。
A.线性表中的数据元素可以是数字、字符、记录等不同类型
B.线性表中包含的数据元素个数不是任意的
C.线性表中的每个结点都有且只有一个直接前趋和直接后继
D.存在这样的线性表:表中各结点都没有直接前趋和直接后继
正确答案:A
20.设有50行60列的二维数组A[50][60],其元素长度为4字节,按行优先顺序存储,基地址为200,则元素A[18][25]的存储地址为()。
A.3700
B.4376
C.3900
D.4620
正确答案:D
21.在线性表顺序存储结构下,在第i个元素之前插入新元素一般需要()
A.移动元素
A.692(10)
B.626(10)
C.709(10)
D.724(10)
正确答案:C
8.具有2000个结点的二叉树,其高度至少为()。
A.9
B.10
C.11
D.12
正确答案:C
9.若已知一棵二叉树先序序列为ABCDEFG,中序序列为CBDAEGF,则其后序序列为()。
A.CDBGFEA
B.CDBFGEA
A.只有一棵
B.有一棵或多棵
C.一定有多棵
D.可能不存在
正确答案:B
28.设有7000个无序的元素,希望用最快的速度挑选出其中前5个最大的元素,最好选用()法。
A.冒泡排序
B.快速排序
C.堆排序
D.基数排序
正确答案:C
29.一个栈的入栈序列是abcde,则栈的不可能的输出序列是()。
A.edcba

北理网上作业数据结构与算法

北理网上作业数据结构与算法

范文范例 精心整理 在线作业自动判卷 20171119题目类型分正确答案 你的答案 批改值评价排序算法好坏的标准主要是( )。

单选题 10.0 4 × 已知一栈的进栈序列为: 1234,则下列序列中不可能的出栈序 单选题 10.04× 列是( )。

在数据结构中,与所使用的计算机无关的是数据的( )10.0 1× 结构单选题在线性表顺序存储结构下,在第i 个元素之前插入新元素一般 单选题 10.0 1× 需要 ()线性表的顺序存储结构是一种()的存储结构。

单选题 10.0 1 × 以下关于线性表的说法不正确的是()。

单选题 10.03× 队列是一种( )。

单选题 10.01 × 在表达式求值算法中,需要用几个栈? 单选题 10.03 ×队列的操作特点是( )。

单选题 10.01 × 下列不属于栈基本运算的是( )。

单选题 10.02 ×本次作业总分值 :100.0 得分 :0.0 正确的题数: 0 题目总数:10 正确率 :0.0%在线作业自动判卷题目类型分正确答案 你的答案 批改值在数据结构中,与所使用的计算机无关的是数据的( ) 10.01 结构单选题 ×学习数据结构主要目的是( )。

单选题10.03× A 算法的时间复杂度为 O (n 3 ),B 算法的时间复杂度为 O ( 2n ),10.02× 则说明( )。

单选题若某线性表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用哪一种存储结构算法的时间效 单选题10.04× 率最高 ?线性表的顺序存储结构是一种( )的存储结构。

单选题10.0 1 × 用线性链表存储线性表时,要求存储空间 单选题10.02×栈与一般的线性表的区别在于()。

单选题10.0 2 ×栈是一种()的数据结构。

北理工《数据结构与算法》在线作业

北理工《数据结构与算法》在线作业

北理工《数据结构与算法》在线作业试卷总分:100 测试时间:-- 试卷得分:99.5一、单选题(共40 道试题,共99.5 分。

)得分:99.51. 图的存储结构不包括()A. 数组表示B. 邻接表C. 邻接多重表D. 孩子兄弟表示正确答案:D 满分:2.5 分得分:2.52. 当两个元素比较出现反序时就相互交换位置的排序方法称为()。

A. 归并排序B. 选择排序C. 交换排序D. 插入排序正确答案:C 满分:2.5 分得分:2.53. 快速排序属于那种排序类型()。

A. 选择排序B. 插入排序C. 交换排序D. 基数排序正确答案:C 满分:2.5 分得分:2.54. 中序遍历一棵二叉排序树所得到的结点序列是键值的()序列。

A. 递增或递减B. 递减C. 递增D. 无序正确答案:C 满分:2.5 分得分:2.55. 关键路径是指AOE(Activity On Edge)网中()。

A. 最长的回路B. 最短的回路C. 从源点到汇点(结束顶点)的最长路径D. 从源点到汇点(结束顶点)的最短路径正确答案:C 满分:2.5 分得分:2.56. 设有一个二维数A[m][n],以行序为主序存储。

假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,则A[4][5]在()位置,(10)表明用10进数表示。

A. 692(10)B. 626(10)C. 709(10)D. 724(10)正确答案:C 满分:2.5 分得分:2.57. 当待排序列基本有序时,下列排序方法中()最好。

A. 直接插入排序B. 快速排序C. 堆排序。

北京理工大学数据结构与算法设计实验二

北京理工大学数据结构与算法设计实验二

《数据结构与算法设计》实验报告——实验二学院:自动化学院班级:06111001学号:**********姓名:宝竞宇一、实验目的掌握栈的建立,输入,删除,出栈等基本操作。

应用栈解决实际问题。

二、实验内容实现简单计算器的功能,请按照四则运算加、减、乘、除、幂(^)和括号的优先关系和惯例,编写计算器程序。

要求支持运算符:+、-、*、/、%、()和=:①从键盘输入一个完整的表达式,以回车作为表达式输入结束的标志;②输入表达式中的数值均为大于等于零的整数,如果中间计算过程中出现小数也只取整进行计算。

例如,输入:4+2*5= 输出:14输入:(4+2)*(2-10)= 输出:-48三、程序设计1、概要设计抽象数据类型定义:两个栈结构,分别用来储存数据和计算符号宏定义:函数“成功”,“失败的返回值”在主程序程序中先依次输入各表达式,存入相应各栈,然后,调用“判断函数”来判断计算符的优先次序,然后再利用计算函数来计算,表达式值。

其中还有,取栈顶元素函数,存入栈函数。

2、详细设计数据类型实现:struct t{ char dat[200];int top;}prt;入栈函数:存入数组,栈顶指针上移void pushd(long int a){ prd.dat[prd.top++]=a;}出栈:取出对应值,栈顶指针下移long int popd( ){ return prd.dat[--prd.top];}比较优先级:建立数组,比较返回大于小于号。

计算函数:以字符型输入,运算符号,用switch来分支计算判断,返回计算数值long int operation ( long int x, long int y, char a){ s witch(a){ case '+': return x+y;case '-': return x-y;case '*': return x*y;case '/': if ( y )return x/y;else{ printf("Divide 0.\n");return 0;}case '%': return (long int) fmod(x,y);case '^': if (y>=0 ) return (long int) pow(x,y);else return (0);default: printf("Error No. 3\n");return 0;}}主程序:在主程序内,以字符串的形式输入表达式,然后分别调用函数存入各相应栈,然后用数组判断,比较运算符的优先顺序。

17春北理工《实用数据结构与算法》在线作业

17春北理工《实用数据结构与算法》在线作业

2017秋17春北理工《实用数据结构与算法》在线作业一、单选题(共20 道试题,共40 分。

)1. 具有2000个结点的二叉树,其高度至少为()。

A. 9B. 10C. 11D. 12正确答案:2. 含4个结点(元素值均不相同)的二叉搜索树有()种。

A. 12B. 14C. 5D. 15正确答案:3. 当两个元素比较出现反序时就相互交换位置的排序方法称为()。

A. 归并排序B. 选择排序C. 交换排序D. 插入排序正确答案:4. 对线性表进行二分查找时,要求线性表必须()。

A. 以顺序方式存储B. 以链接方式存储C. 以顺序方式存储,且结点按关键字有序排列D. 以链接方式存储,且结点按关键字有序排列正确答案:5. 设有50行60列的二维数组A[50][60],其元素长度为4字节,按行优先顺序存储,基地址为200,则元素A[18][25]的存储地址为()。

A. 3700B. 4376C. 3900D. 4620正确答案:6. 一棵高度(假定树根结点为第0层)为4的完全二叉树中的结点数最少为()。

A. 15B. 16C. 17D. 31正确答案:7. 根据二叉树的定义可知二叉树共有()种不同的形态。

A. 4B. 5C. 6D. 7正确答案:8. 对哈希(HASH)函数H(k)= k MOD m, 一般来说,m应取()。

A. 素数B. 很大的数C. 偶数D. 奇数正确答案:9. 一个数组第一个元素的存储地址是100,每个数组元素的长度为2,则第5个元素的地址是()。

A. 110B. 108C. 100D. 120正确答案:10. 用链接方式存储的队列,在进行插入运算时()。

A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D. 头、尾指针可能都要修改正确答案:11. 一个栈的入栈序列是abcde,则栈的不可能的输出序列是()。

A. edcbaB. decbaC. dceabD. abcde正确答案:12. 图的存储结构不包括()A. 数组表示B. 邻接表C. 邻接多重表D. 孩子兄弟表示正确答案:13. 有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当采用折半查找值为82的节点时,()次比较后查找成功。

北理工《数据结构与算法》在线作业满分答案

北理工《数据结构与算法》在线作业满分答案

北理工《数据结构与算法》在线作业满分答案
北理工《数据结构与算法》在线作业
试卷总分:100 得分:100
一、单选题
1. 在数据结构中,与所使用的计算机无关的是数据的()结构
A. 逻辑
B. 存储
C. 逻辑和存储
D. 物理
正确答案:A
2.一个n*n对称矩阵,如果以行或列为主序存入内存,则其容量为()。

A. n*n
B. n*n/2
C. n*(n+1)/2
D. (n+1)*(n+1)/2
正确答案:C
3.一个数组第一个元素的存储地址是100,每个数组元素的长度为2,则第5个元素的地址是()。

A. 110
B. 108
C. 100
D. 120
正确答案:B
4.如果结点a有三个兄弟,而且b为a的双亲,则b的度为()。

A. 3
B. 4
C. 5
D. 2
正确答案:B
5. 下面四种内排序方法中,要求容量最大的是()。

A. 插入排序
B. 选择排序
C. 快速排序
D. 归并排序
正确答案:D
6. 采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为()。

A. n
B. n/2
C. (n-1)/2
D. (n+1)/2
正确答案:D
7. 图的存储结构不包括()
A. 数组表示
B. 邻接表
C. 邻接多重表。

北理工数据结构作业3

北理工数据结构作业3

第六章作业1、简述一棵度为2的树与一棵二叉树有何区别?答:1)度为2的树一定有度为2的结点,而二叉树节点的度只要满足小于等于2即可,因此不一定有度为2的结点;2)度为2的树结点的孩子的顺序是无序的,而二叉树结点的孩子是有序的。

2、假设一棵二叉树的层序序列为ABCDEFGHIJ和中序序列为DBGEHJACIF。

清画出该树。

答:3、假设二叉树如下,请分别写出先序、中序和后序遍历结果,并画出该二叉树对应的森林。

答:先序遍历:ABDGCEFH中序遍历:DGBAECHF后序遍历:GDBEHFCA该二叉树对应的森林:4、画出与下列已知序列对应的树T 。

树的先根次序访问的序列为:GFKDAIEBCHJ ;树的后根次序访问的序列为:DIAEKFCJHBG 。

5、请编写一个递归算法,将二叉树中所有结点的左、右子树相互交换。

typedef struct BiTNode {TelemType data;struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;void Exchange(BiTree &T){BiTree Temp;If(T->lchild||T->rchild){Temp=T->lchild;T->lchild=T->rchild;T->rchild=Temp;}if(T->lchild) Exchange(T->lchild);if(T->rchild) Exchange(T->rchild);}6、请设计按层次顺序(同一层自左向右)遍历二叉树的算法。

Status LevelTraverse(BiTree &T,Status (*Visit)(TelemType e)){ LinkQueue Q;BiTree b;InitQueue(Q);if(T){EnQueue(Q,T);while(!QueueEmpty(Q)){DeQueue(Q,b);Visit(b->data);if(b->lchild)EnQueue(Q,b->lchild);if(b->rchild)EnQueue(Q,b->rchild);}}return OK;}实验三1、遍历二叉树。

北语18秋《算法与数据分析》作业1234满分答案

北语18秋《算法与数据分析》作业1234满分答案

18秋《算法与数据分析》作业1回溯法的效率不依赖于下列哪些因素A.满足显约束的值的个数B..计算约束函数的时间C..计算限界函数的时间D..确定解空间的时间正确答案:D下列算法中通常以深度优先方式系统搜索问题解的是A.备忘录法B.动态规划法C.贪心法D.回溯法正确答案:D分治法所能解决的问题一般具有的几个特征不包括A.该问题的规模缩小到一定的程度就可以容易地解决B.该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质C.利用该问题分解出的子问题的解不可以合并为该问题的解D.原问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子问题正确答案:C一个问题可用动态规划算法或贪心算法求解的关键特征是问题的A.重叠子问题B.最优子结构性质C.贪心选择性质D.定义最优解正确答案:B下列算法中通常以自底向上的方式求解最优解的是A.备忘录法B.动态规划法C.贪心法D.回溯法正确答案:B在下列算法中有时找不到问题解的是A.蒙特卡罗算法B.拉斯维加斯算法C.舍伍德算法D.数值概率算法正确答案:B矩阵连乘问题的算法可由什么设计实现A.分支界限算法B.动态规划算法C.贪心算法D.回溯算法正确答案:B贪心算法与动态规划算法的共同点是A.重叠子问题B.构造最优解C.贪心选择性质D.最优子结构性质正确答案:D下列是动态规划算法基本要素的是A.定义最优解B.构造最优解C.算出最优解D.子问题重叠性质正确答案:D下面哪种函数是回溯法中为避免无效搜索采取的策略A.递归函数B..剪枝函数C.。

随机数函数D..搜索函数正确答案:B贪心选择性质是贪心算法可行的第一个基本要素,但不是贪心算法与动态规划算法的主要区别A.错误B.正确正确答案:A优先队列式分支限界法是指按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点A.错误B.正确正确答案:B矩阵连乘问题的算法可由动态规划设计实现A.错误B.正确正确答案:B分治法与动态规划法的不同点是:适合于用动态规划法求解的问题,经分解得到的子问题往往不是互相独立的。

北理工《实用数据结构与算法》在线作业

北理工《实用数据结构与算法》在线作业

北理工《实用数据结构与算法》在线作业《实用数据结构与算法》是北理工开设的一门计算机类专业课程。

作为计算机科学的基础课程之一,它的目标是让学生掌握常用的数据结构和算法,并且能够灵活应用于实际问题的解决当中。

为了提高学生的学习效果,北理工开设了《实用数据结构与算法》的在线作业,帮助学生在课外进行巩固学习和实践操作。

北理工的《实用数据结构与算法》在线作业设置了一些具体的题目,要求学生在网上提交解答。

题目内容涵盖了数组、链表、栈、队列、树、图等常用的数据结构以及它们的应用场景和算法。

通过完成这些在线作业,学生们可以提高自己对数据结构与算法的理解和应用能力。

在线作业的形式使得学生们可以自由选择时间和地点进行学习和答题。

学生们可以根据自己的时间安排和学习进度,在规定的时间内完成作业。

这种灵活性可以帮助学生们更好地掌握知识点,并且提高自主学习的能力。

在提交作业之前,学生们可以通过提交按钮进行验证,检查自己的答案是否正确。

这种实时的反馈机制,可以帮助学生们及时纠正错误,并且加深对知识点的理解。

同时,学生提交的作业成绩会被记录下来,作为评估学生掌握程度的参考依据。

通过《实用数据结构与算法》的在线作业,学生们可以进一步巩固课堂上所学的知识,并且对数据结构与算法有更深入的理解。

通过实际的编程和解题操作,学生们可以提高他们的解决问题的能力和效率。

总之,北理工的《实用数据结构与算法》在线作业是一种有效的学习辅助工具。

通过这种方式,学生们可以在课堂之外进行巩固学习,并且加深对数据结构与算法的理解。

通过实际的编程和解题操作,学生们可以提高他们的解决问题的能力和效率。

这种学习方式帮助学生们更好地掌握课程内容,并且为未来的学习和工作打下坚实的基础。

数据结构与算法 作业

数据结构与算法 作业

习 题 11. 简述下列术语:数据 数据元素 数据结构 存储结构 数据类型 抽象数据类型2.在下面两列中,左侧是算法的执行时间,右侧是一些时间复杂度。

请用连线的方式表示每个算法的时间复杂度。

100n 3 (1) (a) O (1) 6n 2-12n +1 (2) (b) O (2n ) 1024 (3) (c) O (n ) n +2log 2n (4) (d) O (n 2) n (n +1)(n +2)/6 (5) (e) O (log 2n ) 2n +1+100n (6)(f) O (n 3)3. 试编写算法,求一元多项式P n (x )=∑=ni ii xa 0的值P n (x 0),并确定算法中每一语句的执行次数和整个算法的时间复杂度。

注意选择你认为较好的输入和输出方法,本题输入为a i (i=0,1,…,n ),x 0和n ,输出为P n (x 0)。

习 题 21. 填空题:a) 在顺序表中插入和删除一个元素,需要平均移动 表中一半 元素,具体移动的元素个数与 插入或删除元素的位置 有关。

b) 顺序表中逻辑上相邻的元素的物理位置 要求 紧邻。

单链表中逻辑上相邻的元素的物理位置 不要求 紧邻。

c) 在单链表中,除了首结点外,任一结点的存储位置由 前一结点的指针 指示。

d) 在单链表中设置头结点的作用是 储存指向第一个结点的指针 。

2. 已知顺序线性表A 和B 中各存放一个英语单词,字母均为小写。

试编写一个判定那个单词在字典中排在前面的算法。

3.试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1,a2,…, a n)逆置为(a n,a n-1,…,a1)。

4.已知指针ha和hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m 和n。

试写一算法将这两个链表连接在一起(即令其中一个表的首元结点连在另一个表的最后一个结点之后),假设指针hc指向连接后的链表的头结点,并要求算法以尽可能短的时间完成连接运算。

北语18秋《数据结构》作业3

北语18秋《数据结构》作业3

------------------------------------------------------------------------------------------------------------------------------ (单选题) 1: 对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为___。

A: 顺序表B: 用头指针表示的循环单链表C: 用尾指针表示的循环单链表D: 单链表正确答案:(单选题) 2:A: AB: BC: CD: D正确答案:(单选题) 3:A: AB: BC: CD: D正确答案:(单选题) 4: 线性表的链式存储结构是一种___。

A: 随机存取的存储结构B: 顺序存取的存储结构C: 索引存取的存储结构D: Hash存取的存储结构正确答案:(单选题) 5: 设某有向图中有n个顶点,则该有向图对应的邻接表中有___个表头结点。

A: n-1B: nC: n+1D: 2n-1正确答案:(单选题) 6: 下列关于数据结构基本概念的叙述中,正确的是______。

A: 数据的逻辑结构分为表结构和树结构B: 数据的存储结构分为线性结构和非线性结构C: 数据元素是数据的基本单位D: 结点是有独立含义的数据最小单位正确答案:(单选题) 7: 下述哪一条是顺序存储结构的优点___。

A: 插入运算方便B: 可方便地用于各种逻辑结构的存储表示C: 存储密度大D: 删除运算方便正确答案:(单选题) 8:------------------------------------------------------------------------------------------------------------------------------ A: AB: BC: CD: D正确答案:(单选题) 9: 以下数据结构中哪一个是非线性结构___。

A: 队列B: 线性表C: 栈D: 二叉树正确答案:(单选题) 10: 对线性表进行折半查找时,要求线性表必须___。

北京理工大学数据结构作业(全)

北京理工大学数据结构作业(全)

北京理工大学数据结构作业(全)北理工数据结构作业第二章作业1、在什么情况下用顺序表比链表好?(题集2.3)需要对线性表进行随机存取时,顺序表比链表好。

2、已知L是带表头结点的非空单链表,且P结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。

(题集2.7)a.删除P结点的直接后继结点的语句序列是11 3 14。

b.删除P结点的直接前驱结点的语句序列是10 12 8 3 14。

c.删除P结点的语句序列是10 12 7 3 14。

d.删除首元结点的语句序列是12 11 3 14。

e.删除尾元结点的语句序列是12 11 3 14。

(1)p = p->next;(2)p->next = p;(3)p->next = p->next->next;(4)p = p->next->next;(5)while ( p!=NULL ) p=p->next;(6)while ( q->next!=NULL ) { p=q; q=q->next; }(7)while ( p->next!=q ) p=p->next;(8)while ( p->next->next!=q ) p=p->next;(9)while ( p->next->next!=NULL ) p=p->next;(10)q=p;(11)q=p->next;(12)p=l;(13)l=l->next;(14)free(q);3、算法设计。

设顺序表va中的数据元素递增有序,请设计一算法,将x插入到顺序表的适当位置,以保持该表的有序性。

(题集2.11)typedef struct{ElemType *elem;int length;int listsize;}Sqlist;Status ListInsert_Sq(Sqlist &va , ElemType x){if(va.length==va.listsize) return ERROR;for(i=va.length-1;i>=0&&xva.elem[i+1]=x;va.length++;return OK;}4、算法设计。

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

(单选题) 1: 具有线性结构的数据结构是()A: 赫夫曼树B: 栈C: 图D: 树正确答案:(单选题) 2: 栈的插入和删除操作在()进行。

A: 栈顶B: 栈底C: 任意位置D: 指定位置正确答案:(单选题) 3: 稀疏矩阵一般的压缩存储方法有两种,即()。

A: 二维数组和三维数组B: 三元组表和散列表C: 三元组表和十字链表D: 散列表和十字链表正确答案:(单选题) 4: 设有7000个无序的元素,希望用最快的速度挑选出其中前5个最大的元素,最好选用()法。

A: 冒泡排序B: 快速排序C: 堆排序D: 基数排序正确答案:(单选题) 5: 根据二叉树的定义可知二叉树共有()种不同的形态。

A: 4B: 5C: 6D: 7正确答案:(单选题) 6: 下述几种排序方法中,平均查找长度最小的是()。

A: 插入排序B: 选择排序C: 快速排序D: 归并排序正确答案:(单选题) 7: 设数组Data[0..m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为()A: front=front+1B: front=(front+1)% mC: rear=(rear+1)%mD: front=(front+1)%(m+1)正确答案:(单选题) 8: 在一个具有n个顶点的无向图中,要连通全部顶点至少需要()边。

A: nB: n+1C: n-1D: n/2正确答案:(单选题) 9: 在数据结构中,与所使用的计算机无关的是数据的()结构A: 逻辑D: 物理正确答案:(单选题) 10: 由于数据的逻辑结构通过不同的存储映像方法可得到不同的存储结构,常见的数据存储结构没有()。

A: 邻接存储结构B: 顺序存储结构C: 索引存储结构D: 散列存储结构正确答案:(单选题) 11: 有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当采用折半查找值为82的节点时,()次比较后查找成功。

A: 1B: 2C: 4D: 8正确答案:(单选题) 12: 下列说法哪个是不正确的()。

A: 快速排序属于不稳定排序。

B: 希尔排序属于不稳定排序。

C: 直接插入排序属于不稳定排序。

D: 堆排序属于不稳定排序。

正确答案:(单选题) 13: 设有一个长度为80的已排好序的表,用二分查找法进行查找,若查找不成功,至少比较()次。

A: 9B: 8C: 7D: 6正确答案:(单选题) 14: 若某线性表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用哪一种存储结构算法的时间效率最高?()A: 单链表B: 给出表头指针的单循环链表C: 双向链表D: 给出表尾指针的双向循环链表正确答案:(单选题) 15: 开放定址法中,增量序列的取法不包括()A: 线性探测再散列B: 委随机探测再散列C: 二次探测再散列D: 随机探测再散列正确答案:(单选题) 16: 线性表采用链式存储时,结点的存储地址()A: 必须是不连续的B: 连续与否均可C: 必须是连续的D: 和头结点的存储地址相连续正确答案:(单选题) 17: 3个结点的无向完全连通图至少有()条边。

A: 3B: 4正确答案:(单选题) 18: 用线性链表存储线性表时,要求存储空间()A: 必须是连续的B: 连续不连续都可以C: 部分元素的存储空间必须是连续的D: 必须是不连续的正确答案:(单选题) 19: 设有50行60列的二维数组A[50][60],其元素长度为4字节,按行优先顺序存储,基地址为200,则元素A[18][25]的存储地址为()。

A: 3700B: 4376C: 3900D: 4620正确答案:(单选题) 20: 学习数据结构主要目的是()。

A: 处理数值计算问题B: 研究程序设计技巧C: 选取合适数据结构,写出更有效的算法D: 是计算机硬件课程的基础正确答案:(多选题) 1: 下面关于哈希(Hash)查找的说法不正确的是()A: 哈希函数构造的越复杂越好,因为这样随机性好,冲突小B: 除留余数法是所有哈希函数中最好的C: 不存在特别好与坏的哈希函数,要视情况而定D: 若需在哈希表中删去一个元素,不管用何种方法解决冲突都只要简单的将该元素删去即可正确答案:(多选题) 2: 下面几个符号串编码集合中,是前缀编码的是()A: {0,10,110,1111}B: {11,10,001,101,0001}C: {00,010,0110,1000}D: {b,c,aa,ac,aba,abb,abc}正确答案:(多选题) 3: 对于单链表表示法,以下说法正确的是()A: 指向链表的第一个结点的指针,称为头指针B: 单链表的每一个结点都被一个指针所指C: 任何结点只能通过指向它的指针才能引用D: 尾指针变量具标识单链表的作用,故常用尾指针变量来命名单链表正确答案:(多选题) 4: 下面关于串的的叙述中,正确的是()A: 串是字符的有限序列B: 空串是由空格构成的串C: 模式匹配是串的一种重要运算D: 串既可以采用顺序存储,也可以采用链式存储正确答案:(多选题) 5: 图的存储结构有()A: 邻接矩阵B: 邻接表C: 数组表示法D: 十字链表正确答案:(多选题) 6: 单链表表示法的基本思想是指针P表示结点间的逻辑关系,则以下说法正确的是()C: 若想修改变量p的值(比如让P指向另一个结点),则应直接对p赋值D: 对于一个指针型变量P的值。

只需知道它指的是哪个结点正确答案:(多选题) 7: 对于顺序表的优缺点,以下说法正确的是()A: 无需为表示结点间的逻辑关系而增加额外的存储空间B: 可以方便地随机存取表中的任一结点C: 插入和删除运算较方便D: 由于顺序表要求占用连续的空间,存储分配只能预先进行(静态分配)正确答案:(多选题) 8: 以下不稳定的排序方法是()A: 快速排序B: 冒泡排序C: 希尔排序D: 堆排序正确答案:(多选题) 9: 以下说法正确的是()A: 直接插入排序的空间复杂度为O(1)B: 快速排序附加存储开销为O(log2n)C: 堆排序的空间复杂度为O(n)D: 二路归并排序的空间复杂度为O(n)正确答案:(多选题) 10: 某堆栈的输入序列为a, b,c,d,下面的四个序列中,可能是它的输出序列的是()A: a,c,b,dB: b, c,d,aC: c, d,b, aD: d, c,a,b正确答案:(判断题) 1: 设一棵二叉树的先序序列和后序序列,则能够唯一确定出该二叉树的形状。

A: 错误B: 正确正确答案:(判断题) 2: 线性表的逻辑顺序与物理顺序总是一致的。

A: 错误B: 正确正确答案:(判断题) 3: 广义表中原子个数即为广义表的长度。

A: 错误B: 正确正确答案:(判断题) 4: 做进栈运算时应先判别,栈是否为空。

A: 错误B: 正确正确答案:(判断题) 5: 顺序存储方式只能用于存储线性结构。

A: 错误B: 正确正确答案:(判断题) 6: 深度为6的二叉树最多有64个结点。

A: 错误B: 正确正确答案:A: 错误B: 正确正确答案:(判断题) 8: 空格也是合法字符,它可以出现在较长的字符串中,也可以单独出现。

A: 错误B: 正确正确答案:(判断题) 9: 在单链表中,要访问某个结点,只要知道该结点的指针即可;因此,单链表是一种随机存取结构。

A: 错误B: 正确正确答案:(判断题) 10: 完全二叉树的某结点若没有左孩子,则它必是叶子结点。

A: 错误B: 正确正确答案:(判断题) 11: 哈夫曼树又称为最优二叉树。

A: 错误B: 正确正确答案:(判断题) 12: 一个循环链表可以由所给定的头指针或者尾指针惟一地确定。

A: 错误B: 正确正确答案:(判断题) 13: 哈夫曼树是带权路径最短的树,路径上权值较大的结点离根较近。

A: 错误B: 正确正确答案:(判断题) 14: 中序遍历二叉排序树可以得到一个有序的序列。

A: 错误B: 正确正确答案:(判断题) 15: 算法必须具备的5个特征是:有穷性、确定性、可行性、有0或多个输入量,至少有1个输出量。

A: 错误B: 正确正确答案:(判断题) 16: 快速排序是排序算法中平均性能最好的一种排序。

A: 错误B: 正确正确答案:(判断题) 17: 用带表头结点的单链表表示队列,则判断队列为空的标准是头指针和尾指针均指向同一个结点。

A: 错误B: 正确正确答案:(判断题) 18: 快速排序的速度在所有排序方法中为最快,而且所需附加空间也最少。

A: 错误B: 正确正确答案:(判断题) 19: 任何一棵二叉树中至少有一个结点的度为2。

正确答案:(判断题) 20: 队列和栈都是运算受限的线性表。

A: 错误B: 正确正确答案:(单选题) 1: 具有线性结构的数据结构是()A: 赫夫曼树B: 栈C: 图D: 树正确答案:(单选题) 2: 栈的插入和删除操作在()进行。

A: 栈顶B: 栈底C: 任意位置D: 指定位置正确答案:(单选题) 3: 稀疏矩阵一般的压缩存储方法有两种,即()。

A: 二维数组和三维数组B: 三元组表和散列表C: 三元组表和十字链表D: 散列表和十字链表正确答案:(单选题) 4: 设有7000个无序的元素,希望用最快的速度挑选出其中前5个最大的元素,最好选用()法。

A: 冒泡排序B: 快速排序C: 堆排序D: 基数排序正确答案:(单选题) 5: 根据二叉树的定义可知二叉树共有()种不同的形态。

A: 4B: 5C: 6D: 7正确答案:(单选题) 6: 下述几种排序方法中,平均查找长度最小的是()。

A: 插入排序B: 选择排序C: 快速排序D: 归并排序正确答案:(单选题) 7: 设数组Data[0..m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为()A: front=front+1B: front=(front+1)% mC: rear=(rear+1)%mD: front=(front+1)%(m+1)正确答案:(单选题) 8: 在一个具有n个顶点的无向图中,要连通全部顶点至少需要()边。

A: nB: n+1正确答案:(单选题) 9: 在数据结构中,与所使用的计算机无关的是数据的()结构A: 逻辑B: 存储C: 逻辑和存储D: 物理正确答案:(单选题) 10: 由于数据的逻辑结构通过不同的存储映像方法可得到不同的存储结构,常见的数据存储结构没有()。

A: 邻接存储结构B: 顺序存储结构C: 索引存储结构D: 散列存储结构正确答案:(单选题) 11: 有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当采用折半查找值为82的节点时,()次比较后查找成功。

相关文档
最新文档