数据结构提纲及答案

数据结构提纲及答案
数据结构提纲及答案

数据结构模拟试题一

一、判断题(每小题1 分,共15分)

1.计算机程序处理的对象可分为数据和非数据两大类。

2.全体自然数按大小关系排成的序列是一个线性表。

3.在描述单向链表的结点类型时,必须首先描述数值字段,然后再描述指针字段。

4.顺序栈是一种规定了存储方法的栈。

5.树形结构中的每个结点都有一个前驱。

6.在任何一棵完全二叉树中,最多只有一个度为1的分支结点。

7.若某顶点是有向图的根,则该顶点的入度一定是零。

8.如果某图的邻接矩阵有全零的行,没有全零的列,则该图一定是有向图。

9.用一维数组表示矩阵可以节省存储空间。

10.广义表的长度与广义表中含有多少个原子元素有关。

11.分块查找的效率与线性表被分成多少块有关。

12.散列表的负载因子等于存入散列表中的结点个数。

13.在起泡排序过程中,某些元素可能会向相反的方向移动。

14.按某种逻辑关系组织起来的记录的集合称为逻辑记录。

15.索引非顺序文件的特点是索引表中的索引项不一定按关键字大小有序排列。

二、填空题(每空1分,共15分)

1.顺序表是一种_____________线性表。

2.若用Q[1]~Q[m]作为非循环顺序队列的存储空间,则对该队列最多只能执行___次插入操作。

3.栈和队列的区别在于________的不同。

4.在高度为h(h≥0)的二叉树中至少有___个结点,至多有___个结点。

5.若用二叉链表来存储具有m个叶子,n个分支结点的树,则二叉链表中有___个左指针域为空的结点,有___个右指针域

为空的结点。

6.n个顶点的有根有向图中至少有___条边,至多有___条边。

7.10行20列矩阵若用行优先顺序表来表示,则矩阵中第8行第7列元素是顺序表中第___个元素。

8.在各元素查找概率相等的情况下,用顺序查找方法从含有12个元素的有序表中查找一个元素,元素间的平均比较次数是

_____。

9.在归并两个长度为m的有序表时,排序码的比较次数至少是___次,至多是___次。

10.在高度为3的6阶B-树中,至少有___个关键字,至多有___个关键字。

三、选择题(每题2分,共30分)

1.计算机所处理的数据一般具有某种内在联系性,这是指________。

A.元素和元素之间存在某种关系B.数据和数据之间存在某种关系

C.元素内部具有某种结构D.数据项和数据项之间存在某种关系

2. 假设顺序表目前有4个元素,第i个元素放在R[i]中,1≤i≤4 。若把新插入元素存入R[6],则________。

A.会产生运行错误B.R[1]~R[6]不构成一个顺序表

C.顺序表的长度大于顺序表元素个数,会降低存储空间利用率

D.顺序表元素序号和数组元素下标不一致,会给使用带来麻烦

3. 设H是不带表头结点循环单向链表的表头指针,P是和H同类型的变量。当P指向链表最后一个结点时,_________。A.P所指结点指针字段的值为空B.P的值与H的值相等

C.P所指结点的地址与H的值相等D.P所指结点指针字段的值与H的值相等

4. 栈的定义不涉及数据的__________。

A.逻辑结构B.存储结构C.运算D.逻辑结构和存储结构

5. 设5个元素进栈的顺序是1,2,3,4,5,则出栈的顺序有可能是___________。

A.2,4,1,3,5 B.3,4,1,5,2 C.3,2,4,1,5 D.4,1,3,2,5

6. 若某棵二叉树结点的前序序列和中序序列相同,则该二叉树_________。

A.只有一个结点B.每个结点都没有左孩子C.每个结点都没有右孩子D.不存在

7.对于一棵具有n个结点,度为3的树来说,____________。

A.树的高度至多是n-3 B.树的高度至多是n-2 C.树的最低高度是┏log3(n+1)┓

D.至少在某一层上正好有3个结点

8.n个顶点的有向图如果可以进行拓扑排序,则可以断定该有向图__________。

A.含n个强连通分量B.有唯一的入度为0的顶点C.有多个出度为0的顶点

D.是一个有根有向图

9. 特殊矩阵用行优先顺序表表示,_____________

A.简化了矩阵元素之间的逻辑关系B.便于按行处理矩阵元素

C.无法根据行列号计算矩阵元素的存储地址D.可以节省存储空间

10. 对一个非空的广义表来说,______________。

A.可能不含任何原子元素B.至少含一个原子元素

C.其长度不小于其中任何一个子表的长度D.至少含一个非空的子表元素

11.在有序表(2,4,6,8,10,12,14,16,18,20)上用折半查找方法查找13,依次被比较的是___________。

A.10,16,12,14 B.10,16,12 C.12,16,14 D.10,16,12,13

12.含14个结点的平衡二叉排序树,其最大深度是____。

A.4 B.5 C.6 D.7

13.如果元素R1和R2有相同的排序码,并且进行归并排序前,R1在R2的前面,则当排序结束后,___________。

A.R1有可能在R2的后面B.R1一定在R2的后面

C.R1一定在R2的前面D.选择R1或R2中的一个留在线性表中

14.下面4个序列中,只有___满足堆的定义。

A.13,27,49,76,76,38,85,97 B.76,38,27,49,76,85,13,97

C.13,76,49,76,27,38,85,97 D.13,27,38,76,49,85,76,97

15.下面4种排序方法中,属于不稳定的排序方法是_________排序和_________排序。

A.快速B.归并C.简单选择D.折半插入

数据结构模拟试题二

一.判断题(每小题1 分,共15分)

1.构成数据的最小单位是数据项。

2.空线性表的一个特性是线性表中各结点尚未赋值。

3.非循环单向链表一定要有表头指针。

4.顺序栈的栈顶指针是一个指针类型的变量。

5.在表示树的双亲数组中,找结点的双亲要比找结点的孩子容易。

6.哈夫曼树中不存在度为1的结点。

7.在图中,与V i相邻的顶点其序号一定是i+1或i-1。

8.如果是不连通的无向图,则在相应的邻接表中一定有空链表。

9.矩阵的行数和列数可以不相等。

10.广义表的深度与广义表中含有多少个子表元素有关。

11.折半查找可以在有序的双向链表上进行。

12.散列查找过程中,关键字的比较次数和散列表中关键字的个数直接相关。

13.对n个元素执行简单选择排序,排序码的比较次数总是n(n-1)/2次。

14.物理记录的大小与逻辑记录的大小成正比。

15.对索引文件,索引表是建立在内存的,数据区是建立在外存的。

二.填空题(每空1分,共15分)

1.在程序中,描述顺序表的存储空间一般用________变量。

2.若用Q[0]~Q[100]作为循环顺序队列的存储空间,用“队首指针f的值等于队尾指针r的值”作为队空的标志,则创建一

个空队列所要执行的操作是___________。

3.栈和顺序栈的区别仅在于________。

4.n个结点的二叉树最大高度是___,最小高度是___。

5.树的存储方法主要有_____、_____和_____三种。

6.n个顶点的强连通图中至少有___条边。

7.10行20列矩阵若用列优先顺序表来表示,则矩阵中第7行第6列元素是顺序表中第___个元素。

8.在各元素查找概率相等的情况下,在含有14个元素的平衡二叉排序树上查找其中一个元素,元素间的平均比较次数至少

是_____次,至多是______次。

9.对n个元素执行快速排序,在进行第一次分组时,元素的移动次数至多是____次,至少是___次。

10.在B-树中,若某结点有i个孩子,则该结点中一定有___个关键字。

三.选择题(每题2分,共30分)

1.数据结构的研究内容不涉及________。

A.算法用什么语言来描述B.数据如何存储

C.数据的运算如何实现D.数据如何组织

2. 若H1是动态单向链表的表头指针,H2是动态双向链表的表头指针,则________。

A.H1和H2占用同样多的内存空间B.H1和H2是同类型的变量

C.H2要比H1占用更多的内存空间

D.双向链表要比单向链表占用更多的内存空间

3. 对于K个带头结点的静态单向链表来说,若各结点类型相同,则K个链表一般可共用_________。

A.同一个数组B.某些数组元素C.同一个表头结点D同一个表头指针

4.最不适合用作链接栈的链表是_____________。

A.只有表头指针没有表尾指针的循环双向链表

B.只有表尾指针没有表头指针的循环双向链表

C.只有表尾指针没有表头指针的循环单向链表

D.只有表头指针没有表尾指针的循环单向链表

5.栈和队列的共同点在于_____________。

A.都对存储方法作了限制B.都是只能进行插入、删除运算C.都对插入、删除的位置作了限制D.都对插入、删除两种操作的先后顺序作了限制

6.如果5个元素的出栈的顺序是1,2,3,4,5,则进栈的顺序可能是_____________。

A.3,5,4,1,2 B.1,4,5,3,2 C.2,4,3,1,5 D.5,1,3,2,4

7.若某棵二叉树结点的后序序列和层次序列正好相反,则该二叉树_____________。

A.每个结点都没有右孩子B.不存在度为2的结点C.每个结点都没有左孩子D.不存在

8.对于一棵具有n个结点,度为3的树来说,树的高度至少是____________。

A.┏log32n┓B.┏log3(3n-1)┓C.┏log3(3n+1)┓D.┏log3(2n+1)┓

9.对n个顶点的带权连通图来说,它的最小生成树是指图中任意一个由n-1条__________。

A.权值最小的边构成的子图B.权值之和最小的边构成的子图C.权值之和最小的边构成的连通子图D.权值之和最小的边构成的无环子图

10. 所谓特殊矩阵是指_____________比较特殊。

A.矩阵元素之间的关系B.矩阵的处理方法

C.矩阵元素的取值D.矩阵的存储方法

11.若长度为n且有n种不同原子的广义表用链接方法存储,则时间复杂度为O(n)的运算是___________。

A.复制一个广义表B.求广义表的长度C.查找某个子表D.查找某个原子

12. 待查找元素关键字的值依次是47,且已存入变量k中,如果在查找过程中,和K进行比较的关键字值依次是47,32,46,25,47,则采用的查找方法____。

A.是一种错误的查找方法B.可能是分块查找C.可能是顺序查找D.可能是折半查找

13.如果元素R1和R2有相同的排序码,并且进行堆排序前,R1在R2的前面,则当排序结束后,___________。

A.R1一定在R2的前面B.R1一定在R2的后面

C.R1有可能在R2的后面D.选择R1或R2中的一个留在线性表中

14.下面4种排序方法中,属于稳定的排序方法是_________排序和_________排序。

A.堆B.基数 C. 快速 D. 起泡

15.在线性表中元素很多,且各元素已有序排列的情况下,执行_______排序或_________排序,排序码比较次数最多。A.简单选择B.堆C.归并D.堆

数据结构模拟试题三

一.判断题(每小题1 分,共10分)

1.逻辑结构不同的数据,要采用不同的存储方法来存储。

2.单链表中的结点只有后继,没有前驱。

3.栈和队列具有相同的逻辑特性。

4.二叉树中结点之间的相互关系不能用二元组来表示。

5.关键路径是由权值最大的边构成的。

6.在表示矩阵的三元组顺序表中,各元素的排列顺序与矩阵元素值的大小无关。

7.在广义表中,每个原子必须是单个字符。

8.在平衡二叉排序树中,每个结点的平衡因子值是相等的。

9.只有在线性表的初始状态为逆序排列的情况下,起泡排序过程中,元素的移动次数才会达到最大值。

10.在B+树上可以进行顺序查找。

二.填空题(每空1分,共10分)

1.若用不带表头结点的单链表来表示链接队列,则只有在________情况下,插入操作既要修改队尾指针的值,也要修改队

头指针的值;只有在________情况下,删除操作仅需修改队首指针的值,不需修改队尾指针的值。

2.无向图中边的数目等于邻接矩阵中___________。

3.在各元素查找概率相等的情况下,在含有12个元素的二叉排序树上查找其中一个元素,元素间的平均比较次数至少是

____次,至多是____次。

4.对12个元素进行快速排序,排序码的比较次数最多是___次。

5.对B+树来说,若某个非根分支结点中有6个关键字,则在它的某个孩子结点中至少有_____个关键字,至多有_____个关

键字。

6.如果在根结点中要查到要找的关键字,则对于B-树来说,下一步应该_________,而对于B+树来说,下一步应该_________。三.单选题(每题2分,共20分)

1.线性结构采用链式存储,________。

A.对插入、删除结点的操作较为有利B.不利于进行顺序访问

C.逻辑上相邻的结点在存储器中也相邻D.可以用一些不连续的存储区域来存放一个结点

2. 某算法的时间复杂度为O(2n),表明该算法的________。

A.执行时间与2n成正比B.执行时间等于2n

C.问题规模是2n D.问题规模与2n成正比

3. 在长度为n的_________上,删除最后一个元素,其算法的时间复杂度是O(n)。

A.只有表头指针的循环双向链表B.只有表头指针的非循环双向链表

C.只有表尾指针的非循环双向链表 D . 只有表尾指针的循环双向链表

4. 在4个元素的进栈序列给定以后,由这4个元素构成的可能出栈序列共有________种。

A.14 B.16 C.17 D.24

5. 在任何一棵二叉树中,如果结点a有左孩子b、右孩子c,则在结点的前序序列、中序序列、后序序列中,_____________。A.结点b一定在a的前面B.结点a一定在结点c的前面C.结点b一定在结点c的前面D.结点a一定在结点b的前面

6.若二叉树中结点的中序序列是abcdef,则结点的前序序列不可能是_____________。

A.dbacef B. acbedf C.efbacd D. bafdce

7. 对稀疏矩阵采用压缩存储,其优点之一是可以_____________。

A.减少非零元素的存储空间B.不减少访问非零元素所需时间

C.减少矩阵的存储空间D.降低非零元素间逻辑关系的复杂程度

8. 设待查找元素关键字的值是47,且已存入变量k中,如果在查找过程中,和k进行比较的关键字值依次是82,72,36,84,47,则所采用的查找方法可能是____________。

A.顺序查找B.分块查找C.折半查找D.平衡二叉排序树查找

9.在线性表中元素很多且各元素逆序排列的情况下,执行_______排序,元素的移动次数最少。

A.直接插入B.起泡C.简单选择D.折半插入

10. 8阶方阵,每个元素占1个单元,按行优先顺序存储,起始地址为100,存储地址为135的那个元素是矩阵中每5行第___列的元素。

A.2 B.3 C. 4 D. 5

数据结构模拟试题四

一、( 共30分,每题2分)单项选择题

1.循环队列用数组A[0..m-1]存放其元素值,已知其头尾指针分别为front和rear,则当前元素个数为()A.(rear-front+m) mod m B.rear-front+1 C.rear-front-1

D.rear-front E.以上答案都不对

2.数据结构中,与所使用的计算机无关的是数据的()

A.存储结构 B.物理结构 C.逻辑结构

D.物理结构和存储结构E.以上答案都不对

3.在具有n个结点的单链表中,实现()的操作,其算法的时间复杂度都是O(n)。

A.遍历链表和求链表的第i个结点 B.在地址为p的结点之后插入一个结点 C.删除开始结点 D.删除地址为p 的结点的后继结点 E.以上答案都不对

4.某二叉树的前序遍历序列为IJKLMNO,中序遍历序列为JLKINMO,则后序遍历序列为()

A.JLKMNOI B.LKNJOMI C.LKJNOMI D.LKNOJMI E.以上答案都不对

5.设n阶方阵是一个上三角矩阵,则需存储的元素个数为()

A.n B.n*n C.n*n/2 D.n(n+1)/2 E.以上答案都不对

6.串的“模式匹配”是指()

A.判两个串是否相等 B.对两个串进行大小比较 C.找某字符在串中第一次出现位置 D.找某子串在主串中第一次出现的位置 E.以上答案都不对

7.有n个结点的无向图的边数最多为()

A.n+1 B.n(n-1)/2 C.n(n+1) D.2n(n+1) E.以上答案都不对

8.多关键字文件是指()

A.有多个主关键字 B.有多个次关键字 C.有一个主关键字多个次关键字

D.有多个主关键字和多个次关键字 E.以上答案都不对

9.某顺序存储的表格中有90000个元素,已按关键字值额定升序排列,假定对每个元素进行查找的概率是相同的,且每个元素的关键字的值皆不相同。用顺序查找法查找时,平均比较次数约为()

A.25000 B.30000 C.45000 D.90000 E.以上答案都不对

10.对于序列(49,38,65,97,76,13,27,50)按由小到大进行排序,()是初始步长d=4的希尔排序法第一趟的结果。

A. 49,76,65,13,27,50,97,38

B. 13,27,38,49,50,65,76,97

C. 97,76,65,50,49,38,27,13

D. 49,13,27,50,76,38,65,97

E. 以上答案都不对

11.下列排序算法中,第一趟排序完毕后,其最大或最小元素一定在其最终位置的算法是()

A.归并排序 B.直接插入排序 C.快速排序

D.冒泡排序 E.以上答案都不对

12.关于树和二叉树的有序性,正确的结论是()

A. 树和二叉树都是有序的 B.树和二叉树都可能是有序的

C.树和二叉树都是无序的 D.二叉树是有序的,树可能是有序的,也可能是无序的 E.以上答案都不对

13.在一个图中,所有顶点的度数之和与图的边数的比是()

A.1:2 B.1:1 C.2:1 D.4:1 E.以上答案都不对

14.若一组纪录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个纪录为基准得到的一次划分结果为()

A.38,40,46,56,79,84 B.40,38,46,79,56,84

C.40,38,46,56,79,84 D.40,38,46,84,56,79

E.以上答案都不对

15.从理论上讲,将数据以()结构存放,则查找一个数据所用时间不依赖于数据个数n。

A.二叉查找树 B.链表 C.二叉树 D.哈希表 E.以上答案都不对

二、(共40分,每空2分)填空题

1.二分查找算法的时间复杂度为()

2.在单链表中,申请到新结点p,将p指向的结点后插到s所指结点的操作,其一是p->next=s->next,其二是()。3.对一般树和森林的后序遍历序列的次序与对应的二叉树的()遍历次序相同。

4.设二维数组A[10..20,5..10]按行优先存储,每个元素占4个单元,A[10,5]的地址为160,则A[15,10]的地址为()。5.线性结构反映结点间的逻辑关系是()的,非线性结构反映结点间的逻辑关系是()的。

6.赫夫曼树是带权路径长度()的二叉树。

7.前序为abc且后序为cba的二叉树共有()棵。

8.已知完全二叉树的高度为8,第7层有10个叶子结点,则二叉树的总结点数至少是()。

9.已知二叉树有50个叶子结点,且仅有一个孩子的结点数为30,则总结点数为()。

10.具有m个叶子结点的赫夫曼树共有()个结点。

11.从一棵二叉树的前序序列和()可唯一确定这棵二叉树。设某二叉树的后序遍历为ABKCBPM,则可知该二叉树的根为()。

12.设广义表C=((x,(a,b)),((x,(a,b)),y)),则C的长度为(),深度为()。

13.设有一稠密图G,则G采用()存储较省空间。

14.在插入和选择排序中,若初始数据基本正序,则选用();若初始数据基本反序,则选用()。

15.有n结点的二叉链表中,空指针域有()个;利用这些空指针域,存放指向结点在中序次序下的前趋或后继的指针,这种附加的指针称为()。

数据结构模拟试题五

一、( 共34分,每题2分)单项选择题

1、在非空循环双链表中q所指的结点前插入一个由p所指结点的过程依次为:p->next=q;p->prior=q->prior;q->prior=p;();

A.q->next=p B.q->prior->next=p C.p->prior->next=p

D.p->next->prior=p E.以上答案都不对

2、已知有向图G=(V,E),其中V={v1,v2,v3,v4,v5,v6,v7},E={},G的拓扑序列是()。

A.v1,v3,v4,v6,v2,v5,v7 B.v1,v3,v2,v6,v4,v5,v7

C.v1,v3,v4,v5,v2,v6,v7 D.v1,v2,v5,v3,v4,v6,v7

E.以上答案都不对

3、每个存储结点只含有一个数据元素,存储结点均匀地存放在连续的存储空间,使用函数值对应结点的存储位置,该存储方式是()存储方式

A.顺序 B.链接 C.索引 D.散列 E.以上答案都不对

4、对于单链表形式的队列,队空的条件是()

A.F=R=nil B.F=R C.F≠nil且R=nil D.R-F=1

E.以上答案都不对

5、采用邻接表存储的图的深度优先遍历算法类似于树的()。

A.中根遍历 B.先根遍历 C.后根遍历 D.按层次遍历

E.以上答案都不对

6、对于序列(49,38,65,97,76,13,27,50)按由小到大进行排序,()是初始步长d=4的希尔排序法第一趟的结果。A.49,76,65,13,27,50,97,38

B.13,27,38,49,50,65,76,97

C.97,76,65,50,49,38,27,13

D.49,13,27,50,76,38,65,97

E.以上答案都不对

7、在一个长度为n的顺序表的表尾插入一个新元素的渐进时间复杂度为()。

A.O(n)B.O(1) C.O(n2)D.O(log2n)

E.以上答案都不对

8、设n阶方阵是一个上三角矩阵,则需存储的元素个数为()。

A.n B.n*n C.n*n/2 D.n(n+1)/2 E.以上答案都不对

9、树中所有结点的度等于所有结点数加()。

A.0 B.1 C.-1 D.2 E.以上答案都不对

10、如果只想得到1024个元素组成的序列中的前5个最小元素,那么用()方法最快。

A.起泡排序 B.快速排序 C.堆排序D.直接选择排序

E.以上答案都不对

11、循环队列用数组A[0..m-1]存放其元素值,已知其头尾指针分别为front和rear,则当前元素个数为()。A.(rear-front+m) mod m B.rear-front+1 C.rear-front-1 D.rear-front E.以上答案都不对12、若线性表最常用的运算是查找第i个元素及其前驱的值,则采用()存储方式节省时间。

A.单链表 B.双链表 C.单循环连表 D.顺序表

E.以上答案都不对

13、树最适合用来表示()

A.有序数据元素 B.无序数据元素 C.元素之间无联系的数据

D.元素之间有分支层次关系 E.以上答案都不对

14、多关键字文件是指()

A.有多个主关键字 B.有多个次关键字 C.有一个主关键字多个次关键字

D.有多个主关键字和多个次关键字 E.以上答案都不对

15、有m个叶子结点的赫夫曼树所具有的结点数为()

A.m B.m+1 C.2m D.2m-1 E.以上答案都不对

16、有n个结点的有向完全图的边数为()

A.n*n B.2n C.n(n-1) D.2n(n+1) E.以上答案都不对

17、判断有向图是否存在回路,除了可以利用拓扑排序方法外,还可以利用()。

A.求关键路径的方法

B.求最短路径的DIJKSTRA方法

C.深度优先遍历算法

D.广度优先遍历算法

E.以上答案都不对

二、(共30分,每空2分)填空题

1、在进行直接插入排序时, 其数据比较次数与数据的初始排列()关;而在进行直接选择排序时,其数据比较次数与数据的初始排列()关。

2、对于一个具有N个结点和E条边的无向图,若采用邻接表表示,则顶点表的大小为(),所有边链表中边结点的总数为()。

3、数据的逻辑结构可形式地用一个二元组B=(K,R)来表示,其中K是( ),R是( )。

4、链表适用于()查找。

5、通常程序在调用另一个程序时,都需要使用一个()来保存被调用程度内分配的局部变量、形式参数的存储空间以及返回地址。

6、对一般树和森林的后序遍历序列的次序与对应的二叉树的()遍历次序相同。

7、前序为abc且后序为cba的二叉树共有()棵。

8、设广义表C=((x,(a,b)),((x,(a,b)),y)),则C的长度为(),深度为()。

9、快速排序的平均时间复杂度是()。

10、有n 结点的二叉链表中,空指针域有( )个;利用这些空指针域,存放指向结点在中序次序下的前趋或后继的指针,这种附加的指针称为( )。

三:(共11分,每题1分)判断题(下列各题,你认为正确的,请打“ √”,错的打“×”)

1、线性表采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。( )

2、只允许最下面的二层结点的度数小于2的二叉树是完全二叉树。( )

3、二叉排序树或者是一颗空二叉树,或者是具有下列性质的二叉树:若它的左子树非空,则根结点的值大于其左孩子的值;若它的右子树非空,则根结点的值小于其左孩子的值。( )

4、凡是递归定义的数据结构都可以用递归算法来实现它的操作。 ( )

5、当向一个小根堆(最小堆)中插入一个具有最小值的元素时,该元素需要逐层向上调整,直到被调整到堆顶位置为止。( )

6、对于一棵具有n 个结点,其高度为h 的二叉树,进行任一种次序遍历的时间复杂度为O (n )。( )

7、在散列法中采取开散列(链地址)法来解决冲突时,其装载因子的取值一定在(0,1)之间。( )

8、执行某个排序算法过程中,最初相邻的结点排序后也相邻,则算法是稳定的。( )

9、对具有n 个顶点的连通图进行深度优先遍历,所得定点序列是唯一的。( )

10、由于在线性表的链接存储表示中增加了指针字段,所以它比线性表的顺序表示更浪费空间。( )

11、无向图的邻接矩阵一定是对称的,有向图的邻接矩阵则一定是非对称矩阵。( )

数据结构模拟题一参考答案

一.判断题

1、×

2、×

3、×

4、√

5、×

6、√

7、×.

8、√

9、× 10、× 11、√12、× 13、√ 14、×. 15、×

二.填空题

1.用顺序方法存储的

2.m

3.运算方法定义

4.h 2h -1

5.m n+1

6.n-1 n(n-1)

7. 147

8. 6.5

9.m 2m -1 10. 5 35

三.选择题

1.A

2.B

3.D

4.B

5.C

6.B

7.B

8.A

9.D 10.A 11.A 12.B 13.C 14.D 15.A C

数据结构模拟题二参考答案

一.判断题

1、×

2、×

3、√

4、×

5、√

6、√

7、×.

8、×

9、√ 10、× 11、×12、× 13、√ 14、×. 15、×

二.填空题

1.数组

2.给f 和r 赋同一个值x,0≤x ≤100

3.前者没有指定存储方法,后者指定存储方法

4.n ┏log 2(n+1)┐

5.双亲数组 孩子链表 左孩子和右兄弟链表

6.n

7. 57

8.1445 1447

9.n+1 2 10.i-1

三.选择题

1.A

2.A

3.A

4.D

5.C

6.D

7.B

8.D

9.D 10.C 11.B 12.B 13.C 14.BD 15.AB

数据结构模拟题三参考答案

一.判断题

1、×

2、×

3、√

4、√

5、×

6、√

7、×.

8、×

9、√ 10、√

二.填空题

1、队列为空 队列中有2个或2个以上元素

2、非零元素个数的一半

3、 1237

6.5 4、 66 5、3 12

6、根据记录指针从数据区中读记录 继续沿指针向下一直查到该关键字所在树叶

三.单选题

1.A

2.A

3.B

4.A

5.C

6.C

7.C

8.A

9.C 10.C

数据结构模拟试题五参考答案

一、( 共34分,每题2分)单项选择题

1、C

2、A

3、D

4、A

5、B

6、D

7、B

8、D

9、C 10、D 11、A

12、D 13、D 14、C 15、D 16、C 17、C

二、(共30分,每空2分)填空题

1、答:有、无

2、答:N、2E

3、答:结点的有穷集合、K上关系的有穷集合

4、答:顺序

5、答:栈

6、答:中

7、答:4

8、答:2, 4

9、答:O(nlog2n) 10、答:n+1, 线索

三:(共11分,每题1分)判断题

1、√

2、×

3、×

4、√

5、√

6、√

7、×

8、×

9、×10、×11、×

数据结构模拟试题四参考答案

一、( 共30分,每题2分)单项选择题

1A 2C 3A 4C 5D 6D 7B 8C 9C 10D 11D 12D 13C 14C 15 D

二、(共40分,每空2分)填空题

1、log2n

2、s->next=p

3、中序

4、300

5、一对一的,一对多或多对多的

6、最小

7、4

8、235

9、129 10、2m-1 11、中序,M 12、2,4 13、邻接矩阵14、插入排序,选择排序15、n+1,线索

数据结构课程设计

1.一元稀疏多项式计算器 [问题描述] 设计一个一元稀疏多项式简单计算器。 [基本要求] 输入并建立多项式; 输出多项式,输出形式为整数序列:n, c1, e1, c2, e2,……, cn, en ,其中n是多项式的项数,ci, ei分别是第i项的系数和指数,序列按指数降序排序; 多项式a和b相加,建立多项式a+b; 多项式a和b相减,建立多项式a-b; [测试数据] (2x+5x8-3.1x11)+(7-5x8+11x9)=(-3.1x11+11x9+2x+7) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2-x2+7.8x15)=(-7.8x15-1.2x9-x+12x-3) (1+x+x2+x3+x4+x5)+(-x3-x4)=(x5+x2+x+1) (x+x3)+(-x-x3)=0 (x+x2+x3)+0=(x3+x2+x) [实现提示] 用带头结点的单链表存储多项式,多项式的项数存放在头结点中。 2.背包问题的求解 [问题描述] 假设有一个能装入总体积为T的背包和n件体积分别为w1, w2, …,wn的物品,能否从n件物品中挑选若干件恰好装满背包,即使w1+w2+…+wn=T,要求找出所有满足上述条件的解。例如:当T=10,各件物品的体积为{1,8,4,3,5,2}时,可找到下列4组解:(1,4,3,2)、(1,4,5)、(8,2)、(3,5,2) [实现提示] 可利用回溯法的设计思想来解决背包问题。首先,将物品排成一列,然后顺序选取物品转入背包,假设已选取了前i件物品之后背包还没有装满,则继续选取第i+1件物品,若该件物品“太大”不能装入,则弃之而继续选取下一件,直至背包装满为止。但如果在剩余的物品中找不到合适的物品以填满背包,则说明“刚刚”装入背包的那件物品“不合适”,应将它取出“弃之一边”,继续再从“它之后”的物品中选取,如此重复,直至求得满足条件的解,或者无解。 由于回溯求解的规则是“后进先出”因此自然要用到栈。 3.完全二叉树判断 用一个二叉链表存储的二叉树,判断其是否是完全二叉树。 4.最小生成树求解(1人) 任意创建一个图,利用克鲁斯卡尔算法,求出该图的最小生成树。 5.最小生成树求解(1人) 任意创建一个图,利用普里姆算法,求出该图的最小生成树。 6.树状显示二叉树 编写函数displaytree(二叉树的根指针,数据值宽度,屏幕的宽度)输出树的直观示意图。输出的二叉树是垂直打印的,同层的节点在同一行上。 [问题描述] 假设数据宽度datawidth=2,而屏幕宽度screenwidth为64=26,假设节点的输出位置用 (层号,须打印的空格数)来界定。 第0层:根在(0,32)处输出;

数据结构提纲及答案

数据结构模拟试题一 一、判断题(每小题1 分,共15分) 1.计算机程序处理的对象可分为数据和非数据两大类。 2.全体自然数按大小关系排成的序列是一个线性表。 3.在描述单向链表的结点类型时,必须首先描述数值字段,然后再描述指针字段。 4.顺序栈是一种规定了存储方法的栈。 5.树形结构中的每个结点都有一个前驱。 6.在任何一棵完全二叉树中,最多只有一个度为1的分支结点。 7.若某顶点是有向图的根,则该顶点的入度一定是零。 8.如果某图的邻接矩阵有全零的行,没有全零的列,则该图一定是有向图。 9.用一维数组表示矩阵可以节省存储空间。 10.广义表的长度与广义表中含有多少个原子元素有关。 11.分块查找的效率与线性表被分成多少块有关。 12.散列表的负载因子等于存入散列表中的结点个数。 13.在起泡排序过程中,某些元素可能会向相反的方向移动。 14.按某种逻辑关系组织起来的记录的集合称为逻辑记录。 15.索引非顺序文件的特点是索引表中的索引项不一定按关键字大小有序排列。 二、填空题(每空1分,共15分) 1.顺序表是一种_____________线性表。 2.若用Q[1]~Q[m]作为非循环顺序队列的存储空间,则对该队列最多只能执行___次插入操作。 3.栈和队列的区别在于________的不同。 4.在高度为h(h≥0)的二叉树中至少有___个结点,至多有___个结点。 5.若用二叉链表来存储具有m个叶子,n个分支结点的树,则二叉链表中有___个左指针域为空的结点,有___个右指针域 为空的结点。 6.n个顶点的有根有向图中至少有___条边,至多有___条边。 7.10行20列矩阵若用行优先顺序表来表示,则矩阵中第8行第7列元素是顺序表中第___个元素。 8.在各元素查找概率相等的情况下,用顺序查找方法从含有12个元素的有序表中查找一个元素,元素间的平均比较次数是 _____。 9.在归并两个长度为m的有序表时,排序码的比较次数至少是___次,至多是___次。 10.在高度为3的6阶B-树中,至少有___个关键字,至多有___个关键字。 三、选择题(每题2分,共30分) 1.计算机所处理的数据一般具有某种内在联系性,这是指________。 A.元素和元素之间存在某种关系B.数据和数据之间存在某种关系 C.元素内部具有某种结构D.数据项和数据项之间存在某种关系 2. 假设顺序表目前有4个元素,第i个元素放在R[i]中,1≤i≤4 。若把新插入元素存入R[6],则________。 A.会产生运行错误B.R[1]~R[6]不构成一个顺序表 C.顺序表的长度大于顺序表元素个数,会降低存储空间利用率 D.顺序表元素序号和数组元素下标不一致,会给使用带来麻烦 3. 设H是不带表头结点循环单向链表的表头指针,P是和H同类型的变量。当P指向链表最后一个结点时,_________。A.P所指结点指针字段的值为空B.P的值与H的值相等 C.P所指结点的地址与H的值相等D.P所指结点指针字段的值与H的值相等 4. 栈的定义不涉及数据的__________。 A.逻辑结构B.存储结构C.运算D.逻辑结构和存储结构 5. 设5个元素进栈的顺序是1,2,3,4,5,则出栈的顺序有可能是___________。 A.2,4,1,3,5 B.3,4,1,5,2 C.3,2,4,1,5 D.4,1,3,2,5 6. 若某棵二叉树结点的前序序列和中序序列相同,则该二叉树_________。 A.只有一个结点B.每个结点都没有左孩子C.每个结点都没有右孩子D.不存在 7.对于一棵具有n个结点,度为3的树来说,____________。 A.树的高度至多是n-3 B.树的高度至多是n-2 C.树的最低高度是┏log3(n+1)┓ D.至少在某一层上正好有3个结点 8.n个顶点的有向图如果可以进行拓扑排序,则可以断定该有向图__________。 A.含n个强连通分量B.有唯一的入度为0的顶点C.有多个出度为0的顶点 D.是一个有根有向图 9. 特殊矩阵用行优先顺序表表示,_____________ A.简化了矩阵元素之间的逻辑关系B.便于按行处理矩阵元素

《数据结构》课程考试大纲

03 《数据结构》考试大纲 主要参考教材:严蔚敏、吴伟民编著,《数据结构(C语言版)》,清华大学出版社 谭国律等编著《数据结构》,浙江大学出版社。 总体要求: “数据结构”是一门专业技术基础课。目的就是要培养他们的数据抽象能力,学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及实现应用的相应算法,并掌握分析算法的时间和空间复杂度的技术。 考生在复习时,重点掌握基本概念、基本算法。考题以基本内容为主,题目以基础知识题为主,各章较难内容、较偏内容不考。课本所有加“*”号章节不考,第8章动态存储管理不考。外部排序,文件部分不考。 各章考试内容及要求: 一、绪论:熟悉各名词、术语的含义,掌握基本概念,特别是数据的逻辑结构和存储结构之 间的关系;了解抽象数据类型的定义、表示和实现方法;熟悉类C语言的书写规范,特别要注意值调用和引用调用的区别,输入、输出的方式以及错误处理方式;理解算法五个要素的确切含义;掌握计算语句频度和估算算法时间复杂度的方法。 二、线性表:线性表的逻辑结构定义、抽象数据类型定义和各种存储结构的描述方法;在线 性表的两类存储结构(顺序存储和链式存储)上实现基本操作;一元多项式的抽象数据类型定义、表示及加法的实现。

三、栈和队列:栈和队列的结构特性;在两种存储结构上如何实现栈和队列的基本操作和栈 和队列在程序设计中的应用。(离散事件模拟不考) 四、串:串的数据类型定义;串的三种存储表示:定长顺序存储结构、块链存储结构和堆 分配存储结构;串的各种基本操作的实现及应用;串的朴素模式匹配算法。 五、数组:数组的类型定义和表示方法;特殊矩阵和稀疏矩阵的压缩存储方法及运算的实 现;(广义表不考)。 六、树和二叉树:二叉树的定义、性质和存储结构;二叉树的遍历和线索化以及遍历算法 的各种描述形式;树和森林的定义、存储结构、树和森林与二叉树的转换、遍历;树的多种应用;本章是该课程的重点内容之一。 七、图:图的定义和术语;图的邻接矩阵存储结构、邻接表存储结构:图的两种遍历策略: 深度优先搜索和广度优先搜索;图的最小生成树prim算法、Kruskal 算法;拓扑排序算法;单源最短路径问题的Dijstra 算法。 八、查找:讨论查找表(包括静态查找表和动态查找表)的各种实现方法:顺序表、有序表、 树表和哈希表;关于衡量查找表的主要操作——查找的查找效率的平均查找长度的讨论。(静态树表、平衡二叉树、B树不考)

下数据结构复习

2014下《数据结构》复习提纲 第1章绪论 有关术语;算法、算法复杂度的分析和计算方法 例题: 1.下面算法的时间复杂度为O( n )。 int f( unsigned int n ){ if ( n = = 0 || n = = 1 ) return 1; else returen n *f ( n – 1 ); } 2.for(i=1,s=0;i<=n;i++){t=1;for(j=1;j<=i;j++) t=t*j;s=s+t;}时间复杂度为O(n2) 第2-3章线性表,栈和队列 线性表的概念、存储结构、插入与删除操作;栈和队列的概念,理解栈顶指针、队首、队尾指针的意义和作用,特别是循环队列的头、尾指针的设置。为什么要这样设置。它们基本操作的实现。判空和判满?了解有关应用。 例题: 1.在一个单链表中,若q所指结点是p所指结点的前驱结点,若在q与p 之间插入一个s所指的结点,则执行的语句?(答:q->next=s; s->next=p);注意在某个已知结点前插需要执行的语句? 2.注意循环(链)队列的判空和判满的条件?(看书理解!) 3.对于一个具有n个结点的单链表,在已知的结点p后插入一个新结点的时间复杂度为 O(1),在给定值为x的结点后插入一个新结点的时间复杂度为 O(n)。 4.在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队满的条件为 (rear+l)%n= = front。 执行出队操作后其头指针front如何 5. 线性表采用链式存储时,结点的存储地址连续与否均可; 6. 链式栈删除栈顶元素的操作序列为top=top->next. 7.在单链表中,指针p指向元素为x的结点,实现“删除x的后继”的语句是p->next=p->next->next. 8.判定“带头结点的链队列为空”的条件是Q.front==Q.rear. 9. 假设以数组seqn[m]存放循环队列的元素,设变量rear和quelen分别指示循环队列中队尾元素的位置和元素的个数。则队满的条件表达式为quelen == m;队空的条件表达式quelen == 0;队头元素位置的表达式( rear - quelen + m ) % m

数据结构课程设计报告模板

课程设计说明书 课程名称:数据结构 专业:班级: 姓名:学号: 指导教师:成绩: 完成日期:年月日

任务书 题目:黑白棋系统 设计内容及要求: 1.课程设计任务内容 通过玩家与电脑双方的交替下棋,在一个8行8列的方格中,进行棋子的相互交替翻转。反复循环下棋,最后让双方的棋子填满整个方格。再根据循环遍历方格程序,判断玩家与电脑双方的棋子数。进行大小判断,最红给出胜负的一方。并根据y/n选项,判断是否要进行下一局的游戏。 2.课程设计要求 实现黑白两色棋子的对峙 开发环境:vc++6.0 实现目标: (1)熟悉的运用c语言程序编写代码。 (2)能够理清整个程序的运行过程并绘画流程图 (3)了解如何定义局部变量和整体变量; (4)学会上机调试程序,发现问题,并解决 (5)学习使用C++程序来了解游戏原理。 (6)学习用文档书写程序说明

摘要 本文的研究工作在于利用计算机模拟人脑进行下黑白棋,计算机下棋是人工智能领域中的一个研究热点,多年以来,随着计算机技术和人工智能技术的不断发展,计算机下棋的水平得到了长足的进步 该程序的最终胜负是由棋盘上岗双方的棋子的个数来判断的,多的一方为胜,少的一方为负。所以该程序主要运用的战术有削弱对手行动战术、四角优先战术、在游戏开局和中局时,程序采用削弱对手行动力战术,即尽量减少对手能够落子的位置;在游戏终局时则采用最大贪吃战术,即尽可能多的吃掉对手的棋子;而四角优先战术则是贯穿游戏的始终,棋盘的四角围稳定角,不会被对手吃掉,所以这里是兵家的必争之地,在阻止对手进角的同时,自己却又要努力的进角。 关键词:黑白棋;编程;设计

数据结构复习提纲(整理)

复习提纲 第一章数据结构概述 基本概念与术语(P3) 1.数据结构是一门研究非数值计算程序设计问题中计算机的操作对象以及他们之间的关系和操作的学科. 2.数据是用来描述现实世界的数字,字符,图像,声音,以及能够输入到计算机中并能被计算机识别的符号的集合 2.数据元素是数据的基本单位 3.数据对象相同性质的数据元素的集合 4.数据结构包括三方面内容:数据的逻辑结构.数据的存储结构.数据的操作. (1)数据的逻辑结构指数据元素之间固有的逻辑关系. (2)数据的存储结构指数据元素及其关系在计算机内的表示 ( 3 ) 数据的操作指在数据逻辑结构上定义的操作算法,如插入,删除等. 5.时间复杂度分析 -------------------------------------------------------------------------------------------------------------------- 1、名词解释:数据结构、二元组 2、根据数据元素之间关系的不同,数据的逻辑结构可以分为 集合、线性结构、树形结构和图状结构四种类型。 3、常见的数据存储结构一般有四种类型,它们分别是___顺序存储结构_____、___链式存储结构_____、___索引存储结构_____和___散列存储结构_____。 4、以下程序段的时间复杂度为___O(N2)_____。 int i,j,x; for(i=0;i=0)个具有相同性质的数据元素a1,a2,a3……,an组成的有穷序列 //顺序表结构 #define MAXSIZE 100 typedef int DataType; Typedef struct{ DataType items[MAXSIZE]; Int length; }Sqlist,*LinkList; //初始化链表 void InitList(LinkList *L){ (*L)=(LinkList)malloc(sizeof(LNode)); if(!L){ cout<<”初始化失败!”; return;

数据结构-教学大纲

《数据结构》教学大纲 课程编号:071213A 课程类型:□通识教育必修课□通识教育选修课 □专业必修课□专业选修课 ■学科基础课 总学时:48讲课学时:32 实验(上机)学时:16 学分:3 适用对象:计算机科学与技术专业 先修课程: 程序设计基础与应用、计算机基础 一、教学目标 本课程是计算机科学与技术专业的必修课。本课程是计算机科学与技术专业的核心课程,既重视学生相关理论的系统学习,又强调培养学生发现问题、分析问题和解决问题的实践能力。《数据结构》在计算机科学中是一门综合性的专业主干课,它是介于数学、计算机硬件、计算机软件三者之间的一门核心课程,而且是操作系统、数据库系统及其它系统程序的大型应用程序设计的基础,同时又直接为从事各类计算机应用的技术人员提供了必要的基本知识和解决实际问题的多种方法。 用计算机解决任何问题都需要进行数据表示和数据处理,而数据表示和数据处理正是《数据结构》要研究的内容。《数据结构》主要介绍如何合理地组织数据、有效地存储和处理数据,正确地设计算法以及对算法的分析和评价。该课程逻辑上以线性结构、层次结构、网状结构为主线,物理上分顺序存储、链式存储,分别介绍基本数据结构的特点和算法。并重点介绍有关各种检索、排

序和文件组织的常用算法。通过上述知识的学习和能力的提高,为后续学习和实际工作打下良好的知识基础和能力基础。 目标1:通过对数据结构基本知识进行讲解,让学生理解并掌握数据的逻辑结构和物理结构,并掌握算法设计的基本思想。 目标2:培养学生分析算法复杂度的初步能力,锻炼学生逻辑思维能力和想象能力,并使之了解数据结构的各种应用场景。 目标3:鼓励学生运用算法知识解决各自学科的实际问题,培养他们的独立科研的能力和理论联系实际的能力。 二、教学内容及其与毕业要求的对应关系 (一)教学内容 1.知识体系 第一部分:数据结构的基本概念,包括数据、数据元素、数据项等基本概念、数据类型、抽象数据类型、算法的定义、算法的特性、算法的时间代价、算法的空间代价; 第二部分:线性表的逻辑结构特性,以及线性表的两种存储实现方式;顺序表的定义与实现,包括搜索、插入、删除算法的实现及其平均比较次数的计算;单链表的类定义、构造函数、单链表的插入与删除算法及其平均比较次数的计算; 第三部分:栈的定义、特性和栈的抽象数据类型,栈的顺序表示、链表表示以及相应操作的实现;队列的定义、特性和队列的抽象数据类型,队列的顺序表示、链表表示以及相应操作的实现; 第四部分:串的定义,串的表示和实现,串的操作的定义; 第五部分:数组的两种存储表示方法;矩阵的压缩存储; 第六部分:树和森林的概念。包括树的定义、树的术语、树的抽象数据类型;二叉树的概念、性质及二叉树的表示;二叉树的遍历方法;线索化二叉树的特性及寻找某结点的前驱和后继的方法;树与森林的实现,重点在用二叉树实现;森林与二叉树的转换;树的遍历算法;二叉树的计数方法及从二叉树遍历结果得到

数据结构复习要点整理版

第一章数据结构概述 基本概念与术语 1.数据:数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序所处理的符号的总称。 2.数据元素:数据元素是数据的基本单位,是数据这个集合中的个体,也称之为元素,结点,顶点记录。 (补充:一个数据元素可由若干个数据项组成。数据项是数据的不可分割的最小单位。)3.数据对象:数据对象是具有相同性质的数据元素的集合,是数据的一个子集。(有时候也叫做属性。) 4.数据结构:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 (1)数据的逻辑结构:数据的逻辑结构是指数据元素之间存在的固有逻辑关系,常称为数据结构。 数据的逻辑结构是从数据元素之间存在的逻辑关系上描述数据与数据的存储无关,是独立于计算机的。 依据数据元素之间的关系,可以把数据的逻辑结构分成以下几种: 1.集合:数据中的数据元素之间除了“同属于一个集合“的关系以外,没有其他关系。 2.线性结构:结构中的数据元素之间存在“一对一“的关系。若结构为非空集合,则除了第一个元素之外,和最后一个元素之外,其他每个元素都只有一个直接前驱和一个直接后继。 3.树形结构:结构中的数据元素之间存在“一对多“的关系。若数据为非空集,则除了第一个元素(根)之外,其它每个数据元素都只有一个直接前驱,以及多个或零个直接后继。 4.图状结构:结构中的数据元素存在“多对多”的关系。若结构为非空集,折每个数据可有多个(或零个)直接后继。 (2)数据的存储结构:数据元素及其关系在计算机的表示称为数据的存储结构。 想要计算机处理数据,就必须把数据的逻辑结构映射为数据的存储结构。逻辑结构可以映射为以下两种存储结构: 1.顺序存储结构:把逻辑上相邻的数据元素存储在物理位置也相邻的存储单元中,借助元素在存储器中的相对位置来表示数据之间的逻辑关系。 2.链式存储结构:借助指针表达数据元素之间的逻辑关系。不要求逻辑上相邻的数据元素物理位置上也相邻。 5.时间复杂度分析:1.常量阶:算法的时间复杂度与问题规模n无关系T(n)=O(1) 2.线性阶:算法的时间复杂度与问题规模n成线性关系T(n)=O(n) 3.平方阶和立方阶:一般为循环的嵌套,循环体最后条件为i++ 时间复杂度的大小比较: O(1)< O(log 2 n)< O(n )< O(n log 2 n)< O(n2)< O(n3)< O(2 n )

数据结构课程设计报告

《数据结构课程设计》报告 题目:课程设计题目2教学计划编制 班级:700 学号:09070026 姓名:尹煜 完成日期:2011年11月7日

一.需求分析 本课设的任务是根据课程之间的先后的顺序,利用拓扑排序算法,设计出教学计划,在七个学期中合理安排所需修的所有课程。 (一)输入形式:文件 文件中存储课程信息,包括课程名称、课程属性、课程学分以及课程之间先修关系。 格式:第一行给出课程数量。大于等于0的整形,无上限。 之后每行按如下格式“高等数学公共基础必修6.0”将每门课程的具体信息存入文件。 课程基本信息存储完毕后,接着给出各门课程之间的关系,把每门课程看成顶点,则关系即为边。 先给出边的数量。大于等于0的整形。 默认课程编号从0开始依次增加。之后每行按如下格式“1 3”存储。此例即为编号为1的课程与编号为3的课程之间有一条边,而1为3的前驱,即修完1课程才能修3课程。 例: (二)输出形式:1.以图形方式显示有向无环图

2.以文本文件形式存储课程安排 (三)课设的功能 1.根据文本文件中存储的课程信息(课程名称、课程属性、课程学分、课程之间关系) 以图形方式输出课程的有向无环图。 拓展:其显示的有向无环图可进行拖拽、拉伸、修改课程名称等操作。 2.对课程进行拓扑排序。 3.根据拓扑排序结果以及课程的学分安排七个学期的课程。 4.安排好的教学计划可以按图形方式显示也可存储在文本文件里供用户查看。 5.点击信息菜单项可显示本人的学好及姓名“09070026 尹煜” (四)测试数据(见六测设结果)

二.概要设计 数据类型的定义: 1.Class Graph即图类采用邻接矩阵的存储结构。类中定义两个二维数组int[][] matrix 和Object[][] adjMat。第一个用来标记两个顶点之间是否有边,为画图服务。第二个 是为了实现核心算法拓扑排序。 2.ArrayList list用来存储课程信息。DrawInfo类是一个辅助画图的类,其中 包括成员变量num、name、shuxing、xuefen分别代表课程的编号、名称、属性、 学分。ArrayList是一个DrawInfo类型的数组,主要用来在ReadFile、DrawG、DrawC、SaveFile、Window这些类之间辅助参数传递,传递课程信息。 3.Class DrawInfo, 包括int num;String name;String shuxing;float xuefen;四个成员变量。 4.Class Edge包括int from;int to;double weight;三个成员变量。 5.Class Vertex包括int value一个成员变量。 主要程序的流程图: //ReadFile.java

数据结构课程教学大纲共三套

数据结构课程教学大纲(三套) 《数据结构》课程教学大纲(36/36课时) 一、课程的性质和任务 数据结构是计算机及应用专业中一门重要的专业基础课程,在计算机软件的各个领域中均会使用到数据结构的有关知识。当用计算机来解决实际问题时,就要涉及到数据的表示及数据的处理,而数据表示及数据处理正是数据结构课程的主要研究对象,通过这两方面内容的学习,为后续课程,特别是软件方面的课程打开厚实的基础。因此,数据结构课程在计算机应用专业中具有举足轻重的作用。 本课程的任务是:在基础方面,要求学员掌握常用数据结构的基本概念及其不同的实现方法;在技能方面,通过系统学习能够在不同存储结构上实现不同的运算,并对算法设计的方式和技巧有所体会。总言之,使应用者较全面的掌握各种常用的数据结构,提高运用数据结构解决实际问题的能力。 二、课程的基本要求 本课程的教学基本要求如下: 本课程要求理论必须与上机实践操作相结合,多做题和调试算法,实现算法。实践项目只利用课堂时间是不够的,必须提前布置给学生。通过本课程的学习与实践,学生应达到: 1、掌握数据结构的基本概念和基本理论; 2、熟练掌握顺序表、链表、队列、栈、树以及二叉树、图等基本数据结构的设计和分析; 3、熟练地掌握常用算法(递归、遍历、查找、排序)的知识; 4、能对所求解的问题进行分析,抽象出逻辑结构,选择合适的存储结构,定义所需的运算,设计相应的算法; 5、对算法进行分析和评价。

三、教学内容(一)理论教学

(二)实践环节

四、课时分配 《数据结构》课程共4学分,课内72学时,其中理论课36学时,上机36学时。 五、大纲说明 本课程必须理论与上机实践操作相结合,并要教、学、练相结合,讲清基本

数据结构复习题及答案

复习题(一) 一.填空题(每空1分,共15分) 1.一个算法的效率可分为___________________效率和___________________效率。 2.__________________是被限定为只能在表的一端进行插入运算,在表的另一端 进行删除运算的线性表。 3.设S=“A;/document/Mary.doc”,则strlen(S)= _______________,“/”的字符定位 的位置为_______________。 4.设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列 序为主序顺序存储,则元素a[32,58]的存储地址为_______________。 5.一棵深度为6的满二叉树有_______________个分支结点和_______________个 叶子。 6.用5个权值{3, 2, 4, 5, 1}构造的哈夫曼(Huffman)树的带权路径长度 是。 7.设有一稀疏图G,则G采用存储较省空间。 8.快速排序算法是对算法的一种改进。 9.在数据的存放无规律而言的线性表中进行检索的最佳方法 是。 10.大多数排序算法都有两个基本的操作: 和。 11.设要将序列(Q, H, C, Y, P, A, M, S, R, D, F, X)中的关键码按字母序的升序重 新排列,则:快速排序一趟扫描的结果是。 二.选择题(每题2分,共30分) ()1.数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为: (A)存储结构(B)逻辑结构(C)顺序存储结构(D)链式存储结构 ()2. 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要

数据结构复习提纲终审稿)

数据结构复习提纲 文稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-

复习提纲 第一章数据结构概述 基本概念与术语(P3) 1.数据结构是一门研究非数值计算程序设计问题中计算机的操作对象以及他们之间的关系和操作的学科. 2.数据是用来描述现实世界的数字,字符,图像,声音,以及能够输入到计算机中并能被计算机识别的符号的集合 2.数据元素是数据的基本单位 3.数据对象相同性质的数据元素的集合 4.数据结构包括三方面内容:数据的逻辑结构.数据的存储结构.数据的操作. (1)数据的逻辑结构指数据元素之间固有的逻辑关系. (2)数据的存储结构指数据元素及其关系在计算机内的表示 ( 3 ) 数据的操作指在数据逻辑结构上定义的操作算法,如插入,删除等. 5.时间复杂度分析 -------------------------------------------------------------------------------------------------------------------- 1、名词解释:数据结构、二元组 2、根据数据元素之间关系的不同,数据的逻辑结构可以分为 集合、线性结构、树形结构和图状结构四种类型。 3、常见的数据存储结构一般有四种类型,它们分别是___顺序存储结构_____、___链式存储结构_____、___索引存储结构_____和___散列存储结构_____。 4、以下程序段的时间复杂度为___O(N2)_____。

int i,j,x; for(i=0;i=0)个具有相同性质的数据元素a1,a2,a3……,an组成的有穷序列 //顺序表结构 #define MAXSIZE 100 typedef int DataType; Typedef struct{ DataType items[MAXSIZE]; Int length; }Sqlist,*LinkList; //初始化链表 void InitList(LinkList *L){ (*L)=(LinkList)malloc(sizeof(LNode)); if(!L){ cout<<”初始化失败!”; return; } (*L)->next=NULL;

数据结构课程设计

《数据结构》 课程设计报告 学号 姓名 班级 指导教师 安徽工业大学计算机学院 2010年6月

建立二叉树和线索二叉树 1.问题描述: 分别用以下方法建立二叉树并用图形显示出来: 1)用先序遍历的输入序列 2)用层次遍历的输入序列 3)用先序和中序遍历的结果 2.设计思路: 分三个方式去实现这个程序的功能,第一个实现先序遍历的输入数列建立二叉树;第二个是用层次遍历的方法输入序列;第三个是用先序和后序遍历的结果来建立二叉树;三种方法建立二叉树后都进行输出。关键是将这三个实现功能的函数写出来就行了;最后对所建立的二叉树进行中序线索化,并对此线索树进行中序遍历(不使用栈)。 3.数据结构设计: 该程序的主要目的就是建立二叉树和线索二叉树,所以采用树的存储方式更能完成这个程序; 结点的结构如下: typedef struct bnode { DataType data; int ltag,rtag; struct bnode *lchild, *rchild; } Bnode, *BTree; 4.功能函数设计: BTree CreateBinTree() 用先序遍历的方法讲二叉树建立; BTree CREATREE() 用队列实现层次二叉树的创建; void CreatBT(); 用先序和中序遍历的结果建立二叉树; void InThread(BTree t,BTree pre) 中序线索化; 5.编码实现: #include #include #define max 100 typedef struct bnode { char data; int ltag,rtag; struct bnode *lchild,*rchild; }Bnode,*BTree; BTree Q[max]; BTree CREATREE() { char ch; int front=1,rear=0;

数据结构期末试题提纲

数据结构期末复习提纲(2012级) A、总体要求: 1、掌握数据结构的基本概念、基本原理和基本方法。 2、掌握数据的逻辑结构、存储结构及基本操作的实现,能够对算法进行基本的时间复杂度和空间复杂度的分析。 3、能够运用数据结构的基本原理和方法进行问题的分析与求解,具备采用C语言和C++语言设计与实现算法的能力。 一、基本概念 1、数据结构、数据元素、数据项、数据类型、抽象数据类型、算法、算法的时间复杂度、算法的空间复杂度、算法的评价标准。 2、数据结构的逻辑结构和存储结构及分类。 3、线性表的定义及特点。 4、顺序表、单链表、双向链表、循环链表、静态链表的存储结构。 5、栈和队列的定义及特点。 6、顺序栈、链栈、顺序队列、链队列的存储结构。 7、字符串的定义及特点。 8、顺序串和链串的存储结构。 9、数组的定义及特点。 10、数组的按行存储与按列存储。 11、对称矩阵、三角矩阵、稀疏矩阵的压缩存储。 12、二叉树的定义、一般术语及特点。 13、二叉树的五个基本性质。 14、完全二叉树与满二叉树的概念。 15、二叉树的顺序存储结构。 16、二叉树的二叉链表与三叉链表存储结构。 17、二叉树的四种遍历方式及特点。 18、线索二叉树的存储结构及特点。 19、树和森林的概念。 20、树的双亲链表和孩子兄弟链表存储结构。 21、树和森林的二种遍历方式。 22、图的定义、一般术语及特点。 23、图的邻接矩阵、邻接表、逆邻接表存储结构。 24、图的二种遍历方式及特点、优先遍历生成树的概念。 25、图的连通性、连通图、连通分量的概念。 26、有向无环图的概念及特点。 27、查找、查找表、关键字的概念。 28、顺序查找、折半查找、分块索引查找的概念。 29、二叉排序树和平衡二叉树的定义及特点,平衡因子的概念。 30、B_树的定义及存储结构特点。 31、哈希函数、哈希表、哈希冲突、哈希查找的概念。 32、哈希表装填因子的定义及作用。 33、内部排序、外部排序、排序方法、传统排序和优化排序的概念。 34、希尔排序、快速排序、堆排序、归并排序、基数排序的概念。 35、排序方法的稳定性概念。

数据结构严蔚敏C语言版学习复习提纲

期末复习 第一章绪论复习 数据:计算机处理的信息总称数据项:最小单位数据元素:最基本单位数据对象:元素集合数据结构:相互之间存在一种或多种特定关系的数据元素集合。 数据结构 逻辑结构 存储结构基 础 知数据运算概念:数据元素之间的关系线性结构:一对一非线性结构树:一对多图:多对多 顺序存储结构链表存储结构索引。。。散列。。。 算法描述:指令的有限有序序列 有穷性 确定性 算法特性可行性 输入 输出 算法分析时间复杂度空间复杂度 1、计算机算法必须具备输入、输出、可行性、确定性、有穷性5个特性。 2、算法分析的两个主要方面是空间复杂度和时间复杂度。 3、数据元素是数据的基本单位。 4、数据项是数据的最小单位。 5、数据结构是带结构的数据元素的集合。 6、数据的存储结构包括顺序、链接、散列和索引四种基本类型。 概念

第二章 线性表 复习 特点:单链表的尾结点指针 循环 指向附加头结点。 链表 运算:联接 1、在双链表中,每个结点有两个指针域,包括一个指向前驱结点的指针 2、线性表采用顺序存储,必须占用一片连续的存储单元 3、线性表采用链式存储,便于进行插入和删除操作 4、线性表采用顺序存储和链式存储优缺点比较。 5、简单算法 第三章 栈和队列 复习 定义 逻辑关系:前 后继 基本特点 顺序存储 基本运算 节省空间 随机存取 插、删效率低 插入 删除 线性 特点 单链表 一个指针域 +一个数据域 多占空间 查找费时 插、 删效率高 无法查找前趋结点 运算 链表存储 结构 特点:单链表 +前趋指针域 双向 链表 运算 插入 删除 、一个指向后继结点的指针

数据结构课程设计

一、高校社团管理 在高校中,为了丰富学生的业余生活,在学校的帮助下,会成立许多社团,少则几个,多则几十个。为了有效管理这些社团,要求编写程序实现以下功能:1.社团招收新成员; 2.修改社团相应信息 3.老成员离开社团 4.查询社团情况; 5.统计社团成员数; 二、简单文本编辑器 设计一个文本编辑器,允许将文件读到内存中,也就是存储在一个缓冲区中。这个缓冲区将作为一个类的内嵌对象实现。缓冲区中的每行文本是一个字符串,将每行存储在一个双向链表的结点中,要求设计在缓冲区中的行上执行操作和在单个行中的字符上执行字符串操作的编辑命令。 基本要求: 包含如下命令列。可用大写或小写字母输入。 R:读取文本文件到缓冲区中,缓冲区中以前的任何内容将丢失,当前行是文件的第一行; W:将缓冲区的内容写入文本文件,当前行或缓冲区均不改变。 I:插入单个新行,用户必须在恰当的提示符的响应中键入新行并提供其行号。 D:删除当前行并移到下一行; F:可以从第1行开始或从当前行开始,查找包含有用户请求的目标串的第一行; C:将用户请求的字符串修改成用户请求的替换文本,可选择是仅在当前行中有效的还是对全文有效的。 Q:退出编辑器,立即结束; H:显示解释所有命令的帮助消息,程序也接受?作为H的替代者。 N:当前行移到下一行,也就是移到缓冲区的下一行; P:当前行移到上一行,也就是移到缓冲区的上一行;

B:当前行移到开始处,也就是移到缓冲区的第一行; E:当前行移到结束处,也就是移到缓冲区的最后一行; G:当前行移到缓冲区中用户指定的行; V:查看缓冲区的全部内容,打印到终端上。 三、电话客户服务模拟 一个模拟时钟提供接听电话服务的时间(以分钟计),然后这个时钟将循环的 自增1(分钟)直到达到指定时间为止。在时钟的每个"时刻",就会执行一次检查来看看对当前电话服务是否已经完成了,如果是,这个电话从电话队列中删除,模 拟服务将从队列中取出下一个电话(如果有的话)继续开始。同时还需要执行一个检查来判断是否有一个新的电话到达。如果是,其到达时间被记录下来,并为其产生一个随机服务时间,这个服务时间也被记录下来,然后这个电话被放入电话队列中,当客户人员空闲时,按照先来先服务的方式处理这个队列。当时钟到达指定时间时,不会再接听新电话,但是服务将继续,直到队列中所偶电话都得到处理为止。 基本要求: (1)程序需要的初始数据包括:客户服务人员的人数,时间限制,电话的到达速率,平均服务时间 (2)程序产生的结果包括:处理的电话数,每个电话的平均等待时间 四、停车场管理 设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。在停车场内,汽车按到达的先后次序,由北向南依次排列(假设大门在最南端)。若停车场内已停满n辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该辆车开出大门后,其他车辆再按原次序返回车场。每辆车离开停车场时,应按其停留时间的交费(从进入便道开始计时)。在这里假设汽车从便道上开走时不收取任何费用 基本要求: (1)汽车的输入信息格式为(到达/离去的标识,汽车牌照号码,到达/离去的时间)

数据结构数据结构复习提纲(新)

复习提纲: 第一章: 1.数据结构的基本概念; 2.数据结构的4类基本结构及其特性; 3.存储结构的分类及特点; 4.算法的时间复杂度计算; 第二章: 1.线性表的基本概念; 2.线性表的顺序存储结构的特点和插入删除算法; 3.顺序存储结构的应用; 4.单循环链表的存储结构特点,链表空的判断方法、插入、删除结点算法实现,报数游戏算法实现;5.循环双链表的存储特点,插入、删除结点算法实现。 第三章: 1.栈的特点、对同一序列根据栈的特点进行不同入栈、出栈操作所得结果的判断;栈的实现的相关操作;2.顺序栈的4各要素和相关操作关键语句;链栈的4个要素和相关操作关键语句; 3.了解队列的特点和可执行的基本操作,并能做相关判断; 4.顺序循环队列的队空、队满判断条件,入队、出队操作的相关关键语句; 5.顺序循环队列中对同一序列根据队列进行不同的入队、出队操作后队头和队尾指针的变化判断。 第四章: 1.串的定义、串长的定义和计算、子串个数计算(注意区分:子串与非空且不同于S本身的子串); 2.串的模式匹配(区分BF算法和KMP算法),掌握使用KMP算法计算next数组的值,并且要求掌握匹配过程(BF和KMP的匹配过程不同!)。 前三章程序重点掌握作业四、作业五、作业六、作业八、作业九 第五章: 1.特殊矩阵的压缩存储地址计算,稀疏矩阵的压缩存储结构图。 2.广义表的定义、区分原子和子表,求表头和表尾,深度和层次计算,存储结构图绘制; 3.提供一广义表,写出通过head()和tail()操作求出某个原子的表达式。 4.注意:取表头时即广义表的第一个元素,外面不再加括号;而取表尾时,要将除表头元素外的其他元素一起用圆括号括起来,即将原广义表去掉表头; 第七章:

数据结构课程设计报告

数据结构课程设计报告 题目:5 班级:计算机1102 学号:4111110030 姓名:陈越 指导老师:王新胜

一:需求分析 1.运行环境 TC 2.程序所需实现的功能 几种排序算法的演示,要求给出从初始开始时的每一趟的变化情况,并对各种排序算法性能作分析和比较: (1)直接插入排序; (2)折半插入排序; (3)冒泡排序; (4)简单选择排序; (5)快速排序; (6)堆排序; (7)归并排序. 二:设计说明 1.算法设计的思想 1)、直接插入排序 排序过程:整个排序过程为n-1趟插入,即先将序列中第1个记录看成是一个有序子序列,然后从第2个记录开始,逐个进行插入,直至整个序列有序。 2)、折半插入排序 排序过程:用折半查找方法确定插入位置的排序叫折半插入排序。 3)、冒泡排序

排序过程:将第一个记录的关键字与第二个记录的关键字进行比较,若为逆序r[1].key>r[2].key,则交换;然后比较第二个记录与第三个记录;依次类推,直至第n-1个记录和第n个记录比较为止——第一趟冒泡排序,结果关键字最大的记录被安置在最后一个记录上。对前n-1个记录进行第二趟冒泡排序,结果使关键字次大的记录被安置在第n-1个记录位置。重复上述过程,直到“在一趟排序过程中没有进行过交换记录的操作”为止 4)、简单选择排序 排序过程:首先通过n-1次关键字比较,从n个记录中找出关键字最小的记录,将它与第一个记录交换。再通过n-2次比较,从剩余的n-1个记录中找出关键字次小的记录,将它与第二个记录交换。重复上述操作,共进行n-1趟排序后,排序结束。 5)、快速排序 基本思想:通过一趟排序,将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录进行排序,以达到整个序列有序。 排序过程:对r[s……t]中记录进行一趟快速排序,附设两个指针i和j,设枢轴记录rp=r[s],x=rp.key。初始时令i=s,j=t。首先从j所指位置向前搜索第一个关键字小于x的记录,并和rp交换。再从i所指位置起向后搜索,找到第一个关键字大于x的记录,和rp交换。重复上述两步,直至i==j为止。再分别对两个子序列进行快速排序,直到每个子序列只含有一个记录为止。 6)、堆排序 排序过程:将无序序列建成一个堆,得到关键字最小(或最大)的记录;输

相关文档
最新文档