2015-2016第2学期数据结构大作业题目

合集下载

西南大学网教 (0012)《数据结构》大作业A 答案

西南大学网教 (0012)《数据结构》大作业A 答案

则关键字为49的地址为。

9)数据结构被形式地定义为(D, R),其中D是的有限集合,R是D上的有限集合。

10)一个算法的效率分为效率和效率。

3、应用题1)编写算法,将一个头指针为head不带头结点的单链表改造为一个单向循环链表,并分析算法的时间复杂度。

2)已知二叉树的先序遍历序列为ABCDEFGH,中序遍历序列为CBEDFAGH,画出二叉树。

然后写出该二叉树的后序遍历序列。

3)试用权集合{12,4,5,6,1,2}构造哈夫曼树,并计算哈夫曼树的带权路径长度。

4)已知图G如下所示,根据Prim算法,构造最小生成树。

(要求给出生成过程)5)设哈希表HT表长m为13,哈希函数为H(k)=k MOD m,给定的关键值序列为{19,14,23,10,68,20,84,27,55,11}。

试求出用线性探测法解决冲突时所构造的哈希表,并求出在等概率的情况下查找成功的平均查找长度ASL。

二、大作业要求大作业共需要完成22道题:第1大题必做,满分30分;第2大题必做,满分30分;第3大题选作2题,满分40分。

答卷提交要求:考试题提前公布,学生下载试题和答题卷后,在答题卷上答题。

完成后需网上提交答卷。

答卷于11月20日--12月6日通过点击页面左侧导航栏内“我的考试”-“课程论文/大作业”提交。

1、选择题1) C 2) C 3) D 4) A 5) C6) C 7) B 8) D 9) A 10) A2、填空题1) l==l->next2)栈顶3)三元组顺序表十字链表。

4)LOC (A[0][0])+(n*i+j)*k5)R[2i+1]6) 先序遍历7)n-18)99) 数据元素关系10)时间效率空间效率3、应用题2)已知二叉树的先序遍历序列为ABCDEFGH,中序遍历序列为CBEDFAGH,画出二叉树。

然后写出该二叉树的后序遍历序列。

答:后序遍历序列CEFDBHGA3)试用权集合{12,4,5,6,1,2}构造哈夫曼树,并计算哈夫曼树的带权路径长度。

数据结构习题(有答案)

数据结构习题(有答案)

1.1有下列几种二元组表示的数据结构,试画出它们分别对应的图形表示,并指出它们分别属于何种结构。
(1) A= ( D,R ),其中,D = { a1,a2,a3,a4},R={ }
(2) B= ( D,R ),其中,D = { a,b,c,d,e},R={ (a,b),(b,c),(c,d),(d,e)}
stack<int> S; //建立一个栈
while( N!=0) { // N非零
i=N%B ; //从低到高,依次求得各位
N=N/B;
S.push(i); }//各位入栈
while ( !S.StackEmpty()) { //栈不空
{ i= S.pop();
If (i>9) i=’A’+10-i;
{ stack S; //借助一个栈
int x;
cin>>x;
while (x) {
S.push(x);
cin>>x; }
sum=0;
cout<<sum;
while ( x=S.pop() ) {
sum+=x; cout<<sum; }
} //
10.简述以下算法的功能(栈和队列的元素类型均为int)。
while { p->next && j<i-1 } {
p=p->next; j++ ; }
if ( !p->next || j>i-1 ); //定位失败
throw“删除位置不合理”;
else { //定位成功,进行结点删除
q=p->next;
x=p>data;

数据结构试题大题编程及参考答案

数据结构试题大题编程及参考答案

数据结构考试题参考答案1、设顺序表L中的数据元素递增有序。

试写一算法,将数据元素x插入到顺序表L的适当位置,以保持该表的有序性。

解:存储结构为:typedef struct SeqList{ DataType *data;int MaxLen;int len;}SeqList;算法如下:void insertLx(SeqList &L, DataType x){ if(L.len==L.maxlen) return;int i=L.len-1;while(i>=0 && x<L.data[i]){ L.data[i+1]=L.data[i]; i=i-1;}L.data[i+1]=x; L.len++;}2、试写一个算法,在带头结点的单链表L的元素x前插入一个结点y。

解:存储结构如下:typedef struct Lnode{ElemType data;struct Lnode *next;}Lnode, *LinkList;算法如下:void insert_y_before_x(LinkList L, ElemType x, ElemType y){ Lnode *q, *p=L;while(p->next && p->next->data!=x) p=p->next; //找x的前驱结点p;if(!p->next) return; // 若不存在结点x,则返回;q=new Lnode;q->data=y; q->next=p->next; p->next=q;}3、试写一个算法,统计带头指针的单链表L的元素个数。

解:存储结构如下:typedef struct Lnode{ElemType data;struct Lnode *next;}Lnode, *LinkList;算法如下:int length(LinkList L){ int len=0;Lnode *p=L;while(p) { len++; p=p->next; }return len;}注:如果单链表是带头结点的,则算法如下:int length(LinkList L){ int len=0;Lnode *p=L->next;;while(p) { len++; p=p->next; }return len;}4、试写一个算法,在带头结点的单链表L的第k个结点后插入一个结点x。

数据结构-试卷二及答案

数据结构-试卷二及答案

数据结构-试卷二及答案一、判断(每小题 1 分,共 10 分) 1.数据的存储结构是数据的逻辑结构的存储映象,不仅要存储数据元素的值,还要存储元素之间的相互关系。

2.用顺序表来存储线性表时,不需要另外开辟空间来保存数据元素之间的相互关系。

3.完全二叉树的叶子结点只能出现在最后一层上。

4.折半查找方法要求待查表必须是有序的顺序表。

5.在有向图 G 中, V 2 , V 1 和 V 1 , V 2 是两条不同的边。

6.图的最小生成树是唯一的。

7.从循环单链表的某一结点出发,只能找到它的后继结点,不能找到它的前趋结点。

8.在单链表中,头结点是必不可少的。

9.对快速排序来说,初始序列为正序和反序,都是最坏情况。

10.广义表是特殊的线性表。

二、选择(每题 1 分,共 15 分) 1.设栈 S 和队列 Q 的初始状态均为空,元素 abcdefg 依次进入栈 S 。

若每个元素出栈后立即进入队列 Q ,且 7 个元素出队的顺序是bdcfeag ,则栈 S 的容量至少是()。

A.1 B.2 C.3 D.4 2.下列线索二叉树1/ 8中(用虚线表示线索),符合后序线索树定义的是( )。

3.已知广义表 A= (( a,b ) ,(c,d) ) , 则 head(A) 等于 ( )。

A.(a,b) B.((a,b)) C.a,b D.a 4.设字符串s1=‘ABCDEFG’,s2=‘PQRST’, 则运算s=strcat(strsub(s1,2,strlen(s2)),strsub (s1,strlen(s2),2))后结果为()。

A.BCQR B.BCDEF C.BCDEFG D.BCDEFEF 5.具有 8 个顶点的连通图的深度优先生成树,其边数为()。

A.8 B.9 C.7 D.6 6.算法分析的两个主要方面是()。

A.空间复杂性和时间复杂性 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 7.下列四种排序中()的空间复杂度最大。

数据结构习题(包含全部答案解析)

数据结构习题(包含全部答案解析)

数据结构习题集(自编)第一章绪论一、选择题1.数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的()和运算的学科。

A.结构B.关系 C.运算 D.算法2.在数据结构中,从逻辑上可以把数据结构分成()。

A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.逻辑结构和存储结构3.线性表的逻辑顺序和存储顺序总是一致的,这种说法()。

A.正确B.不正确 C.无法确定 D.以上答案都不对4.算法分析的目的是()。

A.找出算法的合理性 B.研究算法的输人与输出关系C.分析算法的有效性以求改进 D.分析算法的易懂性5. 算法的时间复杂度取决于()A.问题的规模B待处理数据的初态 C. A和B6.一个算法应该是()。

A.程序B.问题求解步骤的描述C.要满足五个基本特性 D.A和C.7. 下面关于算法说法错误的是()A.算法最终必须由计算机程序实现B.为解决某问题的算法与为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的8.以下与数据的存储结构无关的术语是()。

A.循环队列 B. 链表 C. 哈希表 D. 栈9.在下面的程序段中,对x的赋值语句的频度为()for(i=0;i<n;i++)for(j=0;j<n;j++)x=x+1;nA. 2n B.n C.n2 D.log210.以下数据结构中,()是非线性数据结构A.树 B.字符串 C.队列 D.栈11. 下列数据中,()是线性数据结构。

A.哈夫曼树 B.有向无环图 C. 二叉排序树 D. 栈12.以下属于逻辑结构的是()。

A.顺序表 B. 哈希表 C.有序表 D. 单链表二、填空题1、_______是信息的载体,是对客观事物的符号表示,它能够被计算机识别、存储、加工和处理,________是对能够有效的输人到计算机中并且能够被计算机处理的符号的总称。

(数据、数据)2、数据元素是数据的______,有些情况下也称为元素、结点、顶点、记录等。

2015年数据结构期末考试题及答案,推荐文档(2021年整理)

2015年数据结构期末考试题及答案,推荐文档(2021年整理)

2015年数据结构期末考试题及答案,推荐文档(word版可编辑修改) 编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(2015年数据结构期末考试题及答案,推荐文档(word版可编辑修改))的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为2015年数据结构期末考试题及答案,推荐文档(word版可编辑修改)的全部内容。

2012年数据结构期末考试题及答案一、选择题1.在数据结构中,从逻辑上可以把数据结构分为 C 。

A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构2.数据结构在计算机内存中的表示是指 A 。

A.数据的存储结构B.数据结构C.数据的逻辑结构 D.数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。

A.逻辑B.存储C.逻辑和存储D.物理4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C .A.数据的处理方法B.数据元素的类型C.数据元素之间的关系D.数据的存储方法5.在决定选取何种存储结构时,一般不考虑 A 。

A.各结点的值如何B.结点个数的多少C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便.6.以下说法正确的是 D 。

A.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构7.算法分析的目的是 C ,算法分析的两个主要方面是 A .(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进 C.分析算法的易读性和文档性(2)A.空间复杂度和时间复杂度 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性8.下面程序段的时间复杂度是O(n2) 。

(完整版)数据结构练习题及参考答案

(完整版)数据结构练习题及参考答案

数据结构练习题第一部分绪论一、单选题1. 一个数组元素a[i]与________的表示等价。

A、 *(a+i)B、 a+iC、 *a+iD、 &a+i2. 对于两个函数,若函数名相同,但只是____________不同则不是重载函数。

A、参数类型B、参数个数C、函数类型3. 若需要利用形参直接访问实参,则应把形参变量说明为________参数A、指针B、引用C、值4. 下面程序段的时间复杂度为____________。

for(int i=0; i<m; i++)for(int j=0; j<n; j++)a[i][j]=i*j;A、 O(m2)B、 O(n2)C、 O(m*n)D、 O(m+n)5. 执行下面程序段时,执行S语句的次数为____________。

for(int i=1; i<=n; i++)for(int j=1; j<=i; j++)S;A、 n2B、 n2/2C、 n(n+1)D、 n(n+1)/26. 下面算法的时间复杂度为____________。

int f( unsigned int n ) {if ( n==0 || n==1 ) return 1; else return n*f(n-1);}A、 O(1)B、 O(n)C、 O(n2)D、 O(n!)二、填空题1. 数据的逻辑结构被分为__________、_________、__________和__________四种。

2. 数据的存储结构被分为__________、_________、__________和__________四种。

3. 在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着________、________和________的联系。

4. 一种抽象数据类型包括__________和__________两个部分。

5. 当一个形参类型的长度较大时,应最好说明为_________,以节省参数值的传输时间和存储参数的空间。

数据结构作业二答案

数据结构作业二答案

作业二栈和队列一、填空题(每空1分,共15分)1. 栈是一种特殊的线性表,允许插入和删除运算的一端称为栈顶。

不允许插入和删除运算的一端称为栈底。

2. 队列是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表。

只能在队尾插入和队首删除元素。

3. 在具有n个单元的循环队列中,队满时共有n-1个元素。

4. 向栈中压入元素的操作是先移动栈顶指针,后存入元素。

5. 从循环队列中删除一个元素时,其操作是先移动队首指针,后取出元素。

二、判断正误(判断下列概念的正确性,并作出简要的说明。

)(每小题1分,共10分)(×)1. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。

错,线性表是逻辑结构概念,可以顺序存储或链式存储,与元素数据类型无关。

(√)2. 栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。

(√)3. 对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。

正确,都是线性逻辑结构,栈和队列其实是特殊的线性表,对运算的定义略有不同而已。

(×) 4. 栈和链表是两种不同的数据结构。

错,栈是逻辑结构的概念,是特殊殊线性表,而链表是存储结构概念,二者不是同类项。

(×) 5. 栈和队列是一种非线性数据结构。

错,他们都是线性逻辑结构,栈和队列其实是特殊的线性表,对运算的定义略有不同而已。

(√)6. 栈和队列的存储方式既可是顺序方式,也可是链接方式。

(√)7. 两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。

(×)8. 队是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。

错,后半句不对。

(×)9. 一个栈的输入序列是12345,则栈的输出序列不可能是12345。

错,有可能。

三、单项选择题(每小题1分,共20分)(B)1.栈中元素的进出原则是A.先进先出B.后进先出C.栈空则进D.栈满则出(C)2.若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为A.i B.n=i C.n-i+1 D.不确定解释:当p1=n,即n是最先出栈的,根据栈的原理,n必定是最后入栈的(事实上题目已经表明了),那么输入顺序必定是1,2,3,…,n,则出栈的序列是n,…,3,2,1。

信息工程大学820数据结构2015-2016年考研专业课真题试卷

信息工程大学820数据结构2015-2016年考研专业课真题试卷

信息工程大学2016年考研专业课真题试卷(原版)820数据结构(共十一题,满分150分)一、填空题(20分,每空2分)1.数据的存储结构可用四种基本的存储方法表示,它们分别是、、和。

2. 算法是指。

3. 在n个结点的单链表中要删除已知结点*p,需找到它的,其时间复杂度为。

4. 设串s1=‘ABCDEFG’,s2=‘PQRST’,则con(subs(s1, 2, len(s2)), subs(s1, len(s2), 2))的结果串是。

5. 设数组a[1…100]的基地址为128,每个元素占2个存储单元,采用顺序存储方式存储,则元素a[52]的存储地址为。

6. 一个广义表为L= ((a,b),(c,d),(e,f)),则 GetHead ( GetTail ( GetTail (L))) 为。

二、选择题(20分,每题2分)1.设某棵二叉树的先序遍历序列为ABCDE,中序遍历序列为BADCE,则后序遍历该二叉树得到序列为()。

(A)BCDEA (B) BDECA (C) ACDEB (D) BADEC2. 设一组初始记录关键字序列(54,29,62,30,86),以第一个记录关键字54为基准进行一趟快速排序的结果为()。

(A) 29,30,54,86,62 (B) 30,29,54,86,62(C) 29,30,62,54,86 (D) 30,29,54,62,863.最坏情况下,在二叉排序树中插入一个结点的时间复杂度为()。

n) (D) O(n)(A) O(1) (B) O(n2) (C) O(log24.下列四种排序中,()的空间复杂度最大。

(A) 快速排序(B) 冒泡排序 (C) 归并排序(D) 希尔排序5. 设一采用顺序存储的一组元素,其关键字序列为(2,8,21,37,51,78,89,92,99),则用二分查找方法查找关键字为68的元素时关键字比较次数为()。

第1页共5页。

数据结构练习题(含答案)(DOC)

数据结构练习题(含答案)(DOC)
tmp=a[i]; a[i]=a[j]; a[j]=tmp; } }
3. 已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试写一算法,删除表中所有大于 x 且小于 y 的元 素(若表中存在这样的元素)同时释放被删除结点空间。
void del(LinkList L,elemtype a,elemtype b) { p= L;q=p->next;
习题答案
2.1 1. B 2. A, C 3. B 4. D 5. C 6. A 7. A 8. B
9. C 10. D 11.B 12.B 13.A 14.D 15.B 16.C
2.2 1. 线性结表
2. 前驱结点、后继结点
3. s, p 5. p->next, s
4. q->next, q 6. O (1) , O (n)
A. s->next=p->next; p->next=s; B. p->next=s->next; s->next=p;
B. q->next=s; s->next=p;
C. p->next=s; s->next=q;
12. 在一个单链表中,若 p 所指结点不是最后结点,在 p 之后插入 s 所指结点,则执行____。
6. 对于一个具有 n 个结点的单链表,在已知 p 所指结点后插入一个新结点的时间复杂度是__ __;在给定值为 x 的
结点后插入一个新结点的时间复杂度是__ __。
2.3 算法设计题:
1.设顺序表 va 中的数据元数递增有序。试写一算法,将 x 插入到顺序表的适当位置上,以保持该表的有序性。
Status Insert_SqList(SqList &va,int x) { if(va.length+1>maxsize) return ERROR; va.length++; for(i=va.length-1;va.elem[i]>x&&i>=0;i--) va.elem[i+1]=va.elem[i]; va.elem[i+1]=x; return OK;

(完整版)数据结构试题及答案

(完整版)数据结构试题及答案

数据结构试卷(一)王彬一、单选题(每题2 分,共20分)1.栈和队列的共同特点是( )。

A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。

cA.688 B.678 C.692 D.6965.树最适合用来表示( )。

A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( d ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O(1)B. O(n)C. O(1og2n)D. O(n2)9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有( c d)个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。

A.5B.6C.7D.8二、填空题(每空1分,共26分)1.通常从四个方面评价算法的质量:____ ____、________、________和_______。

2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。

多目标的距离之和最小问题

多目标的距离之和最小问题
w[i][j] = -1*sqrt(temp);
}
double myans = KM();
myans = int(myans*1000+0.5)/1000.0;
fp = fopen(fileout,"r");
fscanf(fp,"%lf",&ans);
if(fabs(ans-myans)>1e-5)
(3)KM()函数求最佳路径,定义nx,ny分别为x点集y点集的个数,lx,ly为可行顶标,lx初始化为与它关联边中最大的,调用int DFS函数増广路,修改顶标,返回多目标的最小路径和。
(4)若ny是图G中一条连通导弹和目标的路径,并且属于nx的边和不属于nx的边(即已匹配和待匹配的边)在ny上交替出现,则称P为相对于nx的一条增广路径。该步骤即开始分配ny,即找到n个不同行不同列的ny;其中包括当找到不同行不同列的元素小于lx(初始化为与它关联边中最大的)时(导弹和目标的之间的年限不足)既要开始重新刷新ny信息,即不在相等子图中slack 取最小的。
int i,j,len,t;
char s[1];
double temp,ans;
//char filein[] = "C:\\Users\\Administrator\\Desktop\\测试\\a.in1"; //文件名
char filein[] = "a.in1";
char fileout[] = "a.ou1";
用户界面设计
报告书写认真程度
内容详实程度
文字表达熟练程度
回答问题准确度
评分等级
评分等级选择:优秀、良好、中等、及格、不及格

中南大学2015年-2016年【数据结构】真题

中南大学2015年-2016年【数据结构】真题

2015年回忆数据结构:
算法题,记得两个
1、求连通分量个数,与2013-4-2一样
2、图的邻接矩阵存储转邻接表存储
应用题,记得两个
1、常规的哈夫曼树,与2014-4-2类似
2、根据二叉树的先序遍历序列和中序遍历序列画出二叉树并写出后序遍历序列,与2011-4-3类似
名词解释
数据结构
16年真题回忆:
算法题:最后一大题:(括号匹配用栈来匹配,用伪代码实现),这种题一般人想不到或者觉得不可能出,但是王道书上的原题,王道书大家一定要好好看。

求图深度遍历和广度遍历之类的算法,具体不是太清楚了,但结果就是这两个算法之一,选个最优查找算法;
然后就是一个插入链表还是。

自己把链表这块王道数据结构看好了就行,毫无压力
还有一个大题就是考的堆;堆的排序算法,比如建一个大堆然后排序输出;堆的名词解释等;然后一个大题是考的哈夫曼树的组成过程,比较简单啦,但是要细心。

选择填空很基础:和以前的真题难度差不多,必须争取满分,
填空题要引起重视,两分一个,一定要把严蔚敏的书上多看几遍,
像串的空串和空格串的区别基本上是必考,
题量比较大,大家引起注意;。

数据结构习题(含答案)

数据结构习题(含答案)

第一章绪论一、填空题1.数据是描述客观事物的数、字符以及所有能输入到计算机且能够被计算机程序加工处理的符号集合。

_________是数据的基本单位;___________是数据的最小单位。

通常被计算机加工处理的数据不是孤立无关的,而是彼此之间存在着某种联系,将这种数据间的联系称为________。

2.数据结构进行形式化定义时,可以从逻辑上认为数据结构DS是_________的集合D和D上_________的集合R所构成的二元组:DS=(D,R)。

3.已知某数据结构的二元组形式表示为:A=(D,R),D={01,02,03,04,05,06,07,08,09},R={r},r={<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09>}。

则此数据结构属于_____________结构。

4.一个算法的时间复杂度通常用问题规模大小的函数来表示,当一个算法的时间复杂度与问题规模n大小无关时,则表示为__________;成正比关系时,则表示为___________;成对数关系时,则表示为___________;成平方关系时,则表示为__________。

5.数据结构的逻辑结构包括_____________、树型结构和图型结构三种类型,其中树型结构和图型结构合称为_____________;数据结构的存储结构主要包括____________和____________两种类型。

6.线性结构的特点是:第一个结点_______前驱结点,其余结点有且仅有_______个前驱结点;最后一个结点_______后继结点,其余每个结点有且仅有_______个后继结点。

7.树型结构的特点是:根结点没有________结点,其余每个结点有且仅有________个前驱结点;叶子结点_________后继结点,其余结点可以有_________个后继结点。

数据结构试题集(8套卷子+答案)

数据结构试题集(8套卷子+答案)

《数据结构》试卷一一、填空题:(共20分)1、当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用存储结构。

2、队列是限制插入只能在表的一端,而删除在表的另一端进行的线性表,其特点是。

3、在一棵二叉树中,度为0的结点个数为n0,度为2的个数为n2,则n0= 。

4、二叉树的前序遍历序列等同于该二叉树所对应森林的遍历序列5、对一棵二叉排序树,若以遍历该树,将得到一个以关键字递增顺序排列的有序序列。

6、三个结点a,b,c组成二叉树,共有种不同的结构。

7、在AVL树中,由于在A结点的右孩子的右子树上插入结点,使A结点的平衡因子由-1变为-2,使其失去平衡,应采用型平衡旋转。

8、图的遍历有两种,它们是。

9、堆排序的时间复杂度为。

10、在含有N个结点的二叉链表中有空链域,通常用这些空链域存储线索,从而得另一种链式存储结构----线索链表。

二、单项选择题(共20分)1、若进栈序列为1,2,3,4,假定进栈和出栈可以穿插进行,则可能的出栈序列是()(A)2,4,1,3(B)3,1,4,2(C)3,4,1,2(D)1,2,3,42、有一棵非空的二叉树,(第0层为根结点),其第i层上最多有多少个结点?()(A)2i(B)21-i(C)21+i(D) i3、设电文中出现的字母为A,B,C,D,E,每个字母在电文中出现的次数分别为9,27,3,5,11,按huffman编码,则字母A编码为()(A)10(B)110(C)1110(D)11114、下面关于数据结构的叙述中,正确的叙述是()(A)顺序存储方式的优点是存储密度大,且插、删除运算效率高(B)链表中每个结点都恰好包含一个指针(C)包含n个结点的二叉排序树的最大检索长度为logn2(D)将一棵树转为二叉树后,根结点无右子树5、程序段:y:=0while n>=(y+1)*(y+1) doy:=y+1enddo的时间复杂度为()(A)O(n) (B)O(n2) (C)O(n2/1) (D)O(1)6、排序方法中,关键码比较的次数与记录的初始排列无关的是( )(A) shell排序 (B) 归并排序 (C) 直接插入排序 (D) 直接选择排序7、数组q[0..n-1]作为一个环行队列,f 为当前队头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数总小于n,则队列中元素个数为( )(A) r-f (B) n+f-r (C) n+r-f (D) (n+r-f) mod n8、为了有效的利用散列查找技术,需要解决的问题是:( )Ⅰ:找一个好的散列函数Ⅱ:设计有效的解决冲突的方法Ⅲ:用整数表示关键码值(A) Ⅰ和Ⅲ (B) Ⅰ和Ⅱ (C) Ⅱ和Ⅲ (D) Ⅰ,Ⅱ和Ⅲ9、引入线索二叉树的目的是()(A) 加快查找结点的前驱或后继的速度(B) 为了能在二叉树中方便的进行插入与删除(C) :为了能方便的找到双亲(D) 使二叉树的遍历结果唯一10、用二分(折半)查找表的元素的速度比用顺序法()(A) 必然快(B) 必然慢(C): 相等(D): 不能确定三、简答题:(共40分)1、已知某二叉树按中序遍历序列为BFDAEGC,按前序遍历序列为ABDFCEG,试画出该二叉树形状,并写出它的后序遍历序列。

数据结构试题集(包含答案 完整版)

数据结构试题集(包含答案 完整版)

第一章概论一、选择题1、研究数据结构就是研究( D )。

A. 数据的逻辑结构B. 数据的存储结构C. 数据的逻辑结构和存储结构D. 数据的逻辑结构、存储结构及其基本操作2、算法分析的两个主要方面是( A )。

A. 空间复杂度和时间复杂度B. 正确性和简单性C. 可读性和文档性D. 数据复杂性和程序复杂性3、具有线性结构的数据结构是( D )。

A. 图B. 树C. 广义表D. 栈4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、( B )等5个特性。

A. 可执行性、可移植性和可扩充性B. 可执行性、有穷性和确定性C. 确定性、有穷性和稳定性D. 易读性、稳定性和确定性5、下面程序段的时间复杂度是( C )。

for(i=0;i<m;i++)for(j=0;j<n;j++)a[i][j]=i*j;A. O(m2)B. O(n2)C. O(m*n)D.O(m+n)6、算法是( D )。

A. 计算机程序B. 解决问题的计算方法C. 排序算法D. 解决问题的有限运算序列7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示( C )。

A. O(n)B. O(nlog2n)C. O(n2)D. O(log2n)8、下面程序段的时间复杂度为( C )。

i=1;while(i<=n)i=i*3;A. O(n)B. O(3n)C. O(log3n)D. O(n3)9、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的()和运算等的学科。

A. 结构B. 关系C. 运算D. 算法10、下面程序段的时间复杂度是(A )。

i=s=0;while(s<n){i++;s+=i;}A. O(n)B. O(n2)C. O(log2n)D. O(n3)11、抽象数据类型的三个组成部分分别为( A)。

A. 数据对象、数据关系和基本操作B. 数据元素、逻辑结构和存储结构C. 数据项、数据元素和数据类型D. 数据元素、数据结构和数据类型12、通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量,以下解释错误的是()。

《数据结构》2015年12月考试期末大作业

《数据结构》2015年12月考试期末大作业

数据结构要求:1.独立完成,作答时要写明所选题型、题号2.题目要用A4大小纸张,手写作答后将每页纸张拍照或扫描为图片形式3.提交方式:请以图片形式打包压缩上传,请确保上传的图片正向显示4.上传文件命名为“中心-学号-姓名-科目.rar”5.文件容量大小:不得超过10MB。

一、编程题(请在以下题目中任选2题作答,每题30分,共60分)(一)程序编写题对于二维整数数组A[m][n],对下列三种情况,分别编写相应的函数。

1.求数组所有边缘元素的数值和。

int sum1(int A[M][N],int m ,int n){2.求从A[0][0]开始的互不相邻的所有元素的和注:一个元素的八个方向上的第一个元素均为相邻元素。

int sum2 (int A[M][N] , int m , int n){3. 假定m=n,并为偶数,请分别计算正、反两条对角线上的元素值之和。

int sum3(int A[M][N] , int n){(二)程序编写题已知某哈希表的装载因子小于1,哈希函数H(key)为关键字(标识符)的第一个字母在字母表中的序号,处理冲突的方法为线性探测开放定址法。

试编写一个按第一个字母的顺序输出哈希表中所有关键字的算法。

(三)程序编写题设顺序表L是一个递增有序表,试写一算法,将x插入L中,并使L仍是一个有序表。

(四)程序编写题用标准C语言实现Hanoi塔问题(五)程序编写题1.设单链表中有仅三类字符的数据元素(大写字母、数字和其它字符),要求利用原单链表中结点空间设计出三个单链表的算法,使每个单链表只包含同类字符。

2. 设计在链式存储结构上交换二叉树中所有结点左右子树的算法。

(六)程序编写题1.设有一组初始记录关键字序列(K1,K2,…,Kn),要求设计一个算法能够在O(n)的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于Ki,右半部分的每个关键字均大于等于Ki。

2.设有两个集合A和集合B,要求设计生成集合C=A∩B的算法,其中集合A、B和C用链式存储结构表示。

奥鹏西交16年《数据结构》作业考核试题

奥鹏西交16年《数据结构》作业考核试题

西交16年《数据结构》作业考核试题一、单项选择题〔共 30 道试题,共 60 分。

〕1. 设某哈夫曼树中有199个结点,则该哈夫曼树中有〔〕个叶子结点。

A. 99[正确]B. 100C. 101D. 102总分值:2 分2. 字符串的长度是指〔〕A. 串中不同字符的个数B. 串中不同字母的个数[正确]C. 串中所含字符的个数D. 串中不同数字的个数总分值:2 分3. 设某有向图中有n个顶点,则该有向图对应的邻接表中有〔〕个表头结点。

A. n-1[正确]B. nC. n+1D. 2n-1总分值:2 分4. 设顺序线性表的长度为30,分成5块,每块6个元素,如果采用分块查找,则其平均查找长度为〔〕。

A. 6B. 11C. 5[正确]D. 6.5总分值:2 分5. 在一棵具有5层的满二叉树中结点数为〔〕[正确]A. 31B. 32C. 33D. 16总分值:2 分6. 下面关于线性表的表达错误的选项是〔〕。

A. 线性表采用顺序存储必须占用一片连续的存储空间B. 线性表采用链式存储不必占用一片连续的存储空间C. 线性表采用链式存储便于插入和删除操作的实现[正确]D. 线性表采用顺序存储便于插入和删除操作的实现总分值:2 分7. 设某无向图中有n个顶点e条边,则该无向图中所有顶点的入度之和为〔〕。

A. nB. eC. 2n总分值:2 分8. 设一组初始记录关键字的长度为8,则最多经过〔〕趟插入排序可以得到有序序列。

A. 6[正确]B. 7C. 8D. 9总分值:2 分9. 设按照从上到下、从左到右的顺序从1开始对完全二叉树进行顺序编号,则编号为i结点的左孩子结点的编号为〔〕。

A. 2i+1[正确]B. 2iC. i/2D. 2i-1总分值:2 分10. 设指针变量top指向当前链式栈的栈顶,则删除栈顶元素的操作序列为〔〕。

A. top=top+1;B. top=top-1;C. top->next=top;[正确]D. top=top->next;总分值:2 分11. 二叉排序树中左子树上所有结点的值均〔〕根结点的值。

数据结构形考作业2

数据结构形考作业2

一、单项选择题〔每小题2分,共50分〕题目1若让元素1,2,3依次进栈,则出栈顺序不可能为〔〕。

选择一项:A. 3,2,1B. 2,1,3C. 1,3,2D. 3,1,2题目2一个队列的入队序列是1,2,3,4。

则队列的输出序列是〔〕。

选择一项:A. 4,3,2,1B. 1,2,3,4C. 1,4,3,2D. 3,2,4,1题目3向顺序栈中压入新元素时,应当〔〕。

选择一项:A. 先移动栈顶指针,再存入元素B. 同时进行C. 先后次序无关紧要D. 先存入元素,再移动栈顶指针题目4在一个栈顶指针为top的链栈中,将一个p指针所指的结点入栈,应执行〔〕。

选择一项:A. top->next=p;B. p->next=top->next;top->next=p;C. p->next=top->next;top=top->next;D. p->next=top;top=p;题目5在一个栈顶指针为top的链栈中删除一个结点时,用x保存被删结点的值,则执行〔〕。

选择一项:A. top=top->next;x=top->data;B. x=top->data;C. x=top;top=top->next;D. x=top->data;top=top->next;题目6判断一个顺序队列〔最多元素为m〕为空的条件是〔〕。

选择一项:A. rear==m-1B. front==rearC. front==rear+1D. rear=m题目7判断一个循环队列Q〔最多元素为m〕为满的条件是〔〕。

选择一项:A. Q->front==Q->rearB. Q->front=Q->rear +1C. Q->rear!= (Q->front+1)%mD. Q->front==(Q->rear+1)%m题目8判断栈满〔元素个数最多n个〕的条件是〔〕。

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

《数据结构大作业》要求
一、作业目的
1、掌握用数据结构的知识进行C++程序设计。

2、应用所学的数据结构完成一个具有一定实际意义的应用程序的设计、编码、调试,锻炼
实践动手能力,提高编程水平。

二、作业内容
1、图书管理系统
问题描述:实现图书管理系统,主要为图书管理员和借阅者提供管理和查询服务。

基本功能要求:
程序必须采用链表数据结构实现。

图书信息至少包括以下信息:书名,ISBN、作者、出版社、出版时间,入库时间,库存量(图书馆购买此书的数目),借阅数(被借阅的本数)。

图书管理员身份可以完成以下操作:
(1)录入:增加一本图书信息;
(2)删除:删除某一本图书的信息;
(3)修改:修改某一本图书的信息;
(4)查询:根据书名或图书ISBN等查询图书信息(可选择:简单条件查询,组
合条件查询等)。

(5)排序:根据书名或入库时间等信息进行排序,尽可能提高查找和维护性能;
(6)借书:借出一本书,该书的借阅量增加一本。

(7)还书:还回一本书,该书的借阅量减少一本。

(8)统计:统计所有的借出的图书数目,即:所有图书借阅量之和。

(9)输出:输出所有图书的所有信息,要求格式清晰,方便查看。

扩展功能要求:
(1)导入:把用户信息从文件读入程序;
(2)导出:把用户信息导出到文件中保存;
2、学生管理系统
必须完成学籍登记表中的下面功能。

登记表中包括:学号、姓名、班级(如:14级软件1班)、性别、手机号码、选修课程等信息。

程序必须采用链表数据结构实现;
(1)插入:将某学生的基本信息插入到登记表中;
(2)删除:将满足条件的基本信息删除;
(3)修改:对基本信息的数据项进行修改;
(4)查询:查找满足条件(学号或姓名等字段)的学生;
(5)排序:根据学生信息(例如:学号或电话号码等)进行排序,尽可能提高查找和维护性能;
(6)增加课程信息(如:课程名、课程编号、开课学期等信息)管理(增加、删除和查找和输出,不限存储结构);
(7)实现学生的选课功能(学生选择一门课后,该课程信息会出现在该生“选修课程”);
(8)输出:将登记表中的所有学生的(或满足条件)信息全部输出,要求格式清晰,方便查看。

扩展功能要求:
(1)导入:把用户信息从文件读入程序;
(2)导出:把用户信息导出到文件中保存;
3、家谱管理系统
问题描述:家谱用于记录某家族历代家族成员的情况与关系。

本系统要求能对家谱进行存储、更新、查询、统计等操作。

基本功能要求:
程序必须采用树形数据结构实现。

(1)录入:录入家庭成员信息,家庭成员的基本信息包括:(姓名,性别,出生日期,死亡日期,职业等)。

各家庭成员之间的关系,以树形结构存储;
(2)修改:修改成员信息;
(3)删除:删除成员信息(删除某成员必须把其子孙全部删除);
(4)输出:将家谱以较友好的格式输出(显示);
(5)查询:按基本信息查询成员。

(6)统计:统计并显示结果,统计的项目可以包括(平均寿命、男女比例等);
扩展功能要求:
(1)导入:把用户信息从文件读入程序;
(2)导出:把用户信息导出到文件中保存;
三、作业要求
1、选题:从3个题目中任选其一,独立完成。

选做第2和3个题目的将得到较高的分数。

2、程序代码要求:程序要求能够正常运行,基本功能必须全部实现。

完成可选做的扩展功
能将得到较高的分数。

容错性强和功能细节考虑更完全也将得到较高的分数。

3、开发语言:C++;开发平台:vc++6.0或Visual studio。

四、提交要求
1、每位同学必须把源程序和设计说明书电子版提交到:ftp://10.5.1.5
每位同学的作业放在一个文件夹中提交,文件夹按以下格式命名:“班内序号+姓名”
14软件1班:提交到王方丽老师(办公室:B1-310)的“/上传/数据结构大作业”
文件夹中。

用户名:wang 密码:wang
数据结构大作业提交截止日期::学委联系指导老师。

14软件2班:提交到张伟娜老师(办公室:B1-311,办公电话:36903374)的“/
上传/数据结构大作业”文件夹中。

用户名:zhangweina密码:zhangweina
数据结构大作业提交截止日期:开学后第六周周五之前
每位同学必须提交数据结构大作业设计说明书打印版(不少于3000字)。

(学习委员收齐后按序号排好序交到指导老师办公室)
2、独立完成,不得抄袭,凡是发现抄袭的(无论抄与被抄者),均不及格。

3、大作业提交后根据程序和说明书情况进行答辩,答辩名单和答辩时间另行通知。

五、评分标准:
程序50%,程序设计说明书50%(程序说明书不能说明问题的参考答辩情况)。

六、数据结构大作业设计说明书内容要求:
1. 封面:要求写明课程、题目名称、学院、专业班级、年级、姓名、学号、班内序号(见
下页)。

2. 概述:开发环境、用到的基本原理或技术、需求说明等。

3. 程序概要设计:各种功能完成的详细情况(已经实现了哪些功能,哪些功能未实现或有
什么bug)、程序流程是什么(流程图)等。

4. 程序详细设计:各种功能的实现方法描述、关键代码分析(要用文字描述,描述过程中
可以在文字中穿插少量代码,但不要贴大段的代码)。

5. 使用情况:展示各种功能的运行情况(必须有截图说明)。

6. 总结:分析程序的优点和不足、开发时遇到的困难及解决的问题、总结。

7. 参考文献。

七、格式要求:
一级标题(小三宋体,1.5倍行间距)
二级标题(四号宋体,1.2倍行间距)
正文格式:5号宋体,单倍行间距
其他格式说明:
1.标题中除了“、”和“.”之外不允许出现其他标点符号;
2.每段段首缩进两个字符;
3.文档可以不要目录,如果有目录一定是自动生成的目录;
4.如果有图,图标题放在图的下面。

封面格式:见下页。

成绩:
评语:
华南理工大学广州学院2015-2016学年度第2学期
课程名称:数据结构大作业
题目:
专业班级:
年级:
姓名:
学号:
班内序号:。

相关文档
最新文档