数据结构作业(一)2012-9-16

合集下载

数据结构-数据结构历年考题及答案2

数据结构-数据结构历年考题及答案2

中国矿业大学2011-2012学年《数据结构》试卷(A卷)(考试时间:100分钟)一. 填空(每空2分,共40分)1. 数据结构式具有相同性质的数据元素的(1)。

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

3. 有6行8列的二维数组A,每个元素用相邻的6个字节存储,存储器按字节编址,已知A的起始存储地址(基址)为1000,在行优先存储和列优先存贮情况下A[5,5]的存储地址分别为__(3)_____,_____(4)____。

4. 完全二叉树第4 个节点的父节点是第 (5) 节点,左孩子是第 (6) 个节点。

如果该二叉树有10层,则共有 (7) 个节点。

5. 请描述在循环队列Q中,队头和队尾指针分别由front和rear表示,该队列有10个存储空间,判断队空和队满的条件分别分:_____(8)________,_______(9)_________。

6. 字符串t=”child”,s=”cake”,请写出下列函数的结果:StrLength(t) =(10)__;Concat(SubString(s,3,1),SubString(t,2,2))=____(11)___。

7. 一棵二叉树为则后序序列为(12),中序序列为(13),先序序列为__(14)____。

8. 请用数据序列{53,17,12,66,58,70,87,25,56,60 }构造一棵二叉排序树_(15)_。

9.。

一个栈输入的序列式1,2,3,则可能的且以2为开头的输出序列是 (16) ,不可能的序列是____(17)____。

10. 有n个结点的无向完全图的边数分别为_______(18)_______。

11. 要从数据:2,3,4,8,9,11,13查找11,若采用折半查找法,则在(19)次比较后,才找到该数据。

12. 在直接插入排序、希尔排序、冒泡排序和快速排序中,平均情况下(20)_____最快。

数据结构真题2012年10月

数据结构真题2012年10月

数据结构真题2012年10月(总分:100.00,做题时间:90分钟)一、单项选择题(总题数:15,分数:30.00)1.一个算法的时间耗费的数量级称为该算法的______(分数:2.00)A.效率B.难度C.可实现性D.时间复杂度√解析:[考点] 算法的时间复杂度的概念[解析] 一个算法的时间耗费的数量级称为该算法的时间复杂度。

2.顺序表便于______(分数:2.00)A.插入结点B.删除结点C.按值查找结点D.按序号查找结点√解析:[考点] 顺序表的特征[解析] 顺序表便于按序号查找结点。

3.设带头结点的单循环链表的头指针为head,指针变量P指向尾结点的条件是______(分数:2.00)A.p->next->next==headB.p->next==head √C.p->next->next==NULLD.p->next==NULL解析:[考点] 指针变量p指向尾结点的判定条件[解析] 单循环链表的指针变量p指向尾结点的判定条件是p->next==head。

4.设以数组A[0..m-1]存放循环队列,front指向队头元素,rear指向队尾元素的下一个位置,则当前队列中的元素个数为______(分数:2.00)A.(rear-front+m)%m √B.rear-front+1C.(front-rear+m)%mD.(rear-front)%m解析:[考点] 队列中元素个数的计算[解析] 队列中元素的个数为(rear-front+m)%m5.下列关于顺序栈的叙述中,正确的是______(分数:2.00)A.入栈操作需要判断栈满,出栈操作需要判断栈空√B.入栈操作不需要判断栈满,出栈操作需要判断栈空C.入栈操作需要判断栈满,出栈操作不需要判断栈空D.入栈操作不需要判断栈满,出栈操作不需要判断栈空解析:[考点] 顺序栈的性质的判断[解析] 入栈操作需要判断栈满,出栈操作需要判断栈空。

6.A是一个10×10的对称矩阵,若采用行优先的下三角压缩存储,第一个元素a 0,0的存储地址为1,每个元素占一个存储单元,则a 7,5的地址为______(分数:2.00)A.25B.26C.33D.34 √解析:[考点] 对称矩阵的元素的地址的计算[解析] 若对称矩阵采用下三角压缩存储,根据其地址的计算公式,可得到所求元素的地址。

《数据结构》期末考试题及答案

《数据结构》期末考试题及答案

2011-2012学年第一学期期末考查《数据结构》试卷(答案一律写在答题纸上,在本试卷上做答无效)一、选择(每题1分,共10分)1.长度为n的线性表采用顺序存储结构,一个在其第i个位置插入新元素的算法时间复杂度为(D)A.O(0)B.O(1)C.O(n)D.O(n2)2.六个元素按照6,5,4,3,2,1的顺序入栈,下列哪一个是合法的出栈序列?(D)A.543612B.453126C.346512D.2341563.设树的度为4,其中度为1、2、3、4的结点个数分别是4、2、1、2,则树中叶子个数为(B )A.8B.9C.10D.114.设森林F对应的二叉树B有m个结点,B的右子树结点个数为n,森林F中第一棵树的结点个数是( B )A. m-nB.m-n-1C.n+1D.m+n5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(B)A.9B.11C.15D.不确定6.下列哪一个方法可以判断出一个有向图是否有环。

(A)A.深度优先遍历B.拓扑排序C.求最短路径D.求关键路径7.第7层有10个叶子结点的完全二叉树不可能有(B )个结点。

A.73B.234C.235D.2368.分别用以下序列构造二叉排序树,与用其他三个序列构造的结果不同的是(B)A.(100,80,90,60,120,110,130)B.(100, 120, 110,130,80, 60,90)C.(100,60,80,90,120,110,130)D.(100,80, 60,90, 120, 130,110)9.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序过程中变化如下:(1)84 47 25 15 21 (2)15 47 2584 21 (3)15 21 25 84 47(4)15 21 25 47 84则采用的排序方法是(B )A.选择排序B.起泡排序C.快速排序D.插入排序10.对线性表进行折半查找时,要求线性表必须(D)A.以顺序方式存储B.以顺序方式存储,且数据元素有序C.以链接方式存储D.以链接方式存储,且数据元素有序二、填空(每空1分,共15分)1.数据结构中评价算法的两个重要指标是时间复杂度、空间复杂度。

(完整)数据结构考试题及答案资料,推荐文档

(完整)数据结构考试题及答案资料,推荐文档

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)。

s =0;for(I =0;i<n;i++)for(j=0;j<n;j++)s +=B[i][j];sum =s ;9.下面程序段的时间复杂度是O(n*m)。

for(i =0;i<n;i++)for(j=0;j<m;j++)A[i][j] =0;10.下面程序段的时间复杂度是O(log3n)。

i =0;while(i<=n)i =i * 3;11.在以下的叙述中,正确的是B。

A.线性表的顺序存储结构优于链表存储结构B.二维数组是其数据元素为线性表的线性表C.栈的操作方式是先进先出D.队列的操作方式是先进后出12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着B 。

计算机专业基础综合数据结构(图)历年真题试卷汇编1

计算机专业基础综合数据结构(图)历年真题试卷汇编1

计算机专业基础综合数据结构(图)历年真题试卷汇编1(总分:60.00,做题时间:90分钟)一、单项选择题(总题数:20,分数:40.00)1.下列关于无向连通图特性的叙述中,正确的是( )。

【2009年全国试题7(2分)】I.所有顶点的度之和为偶数Ⅱ.边数大于顶点个数减1Ⅲ.至少有一个顶点的度为1(分数:2.00)A.只有I √B.只有ⅡC.I和ⅡD.I和Ⅲ解析:解析:无向图中一条边要连接两个顶点,因此顶点的度数之和必为偶数。

n个顶点的无向连通图至少需要n-1条边。

无向连通图并不要求“至少有一个顶点的度为1”。

2.若无向图G=(V,E)中含有7个顶点,要保证图G在任何情况下都是连通的,则需要的边数最少是( )。

【2010年全国试题7(2分)】(分数:2.00)A.6B.15C.16 √D.21解析:解析:要保证n个顶点的无向图G在任何情况下都是连通的,则需要先由n-1个顶点组成完全图,从第n个顶点引一条到n-1任一顶点的边,则图肯定是连通的。

本题先由6个顶点组成完全图,需要6(6-1)/2=15条边,故按题目要求“需要的边数最少”是15+1=16。

3.对下图进行拓扑排序,可以得到不同拓扑序列的个数是( )。

【2010年全国试题8(2分)(分数:2.00)A.4B.3 √C.2D.1解析:4.下列关于图的叙述中,正确的是( )。

【2011年全国试题8(2分)】I.回路是简单路径Ⅱ.存储稀疏图,用邻接矩阵比邻接表更省空间Ⅲ.若有向图中存在拓扑序列,则该图不存在回路(分数:2.00)A.仅ⅡB.仅I、ⅡC.仅Ⅲ√D.仅I、Ⅲ解析:解析:图中第1个顶点和最后一个顶点相同的路径称为回路或环。

序列中所有顶点不重复出现的路径称为简单路径,邻接矩阵的大小只和顶点个数相关,存储稀疏图,用邻接表比邻接矩阵更省空间。

拓扑序列成功的前提是有向图中不存在回路。

5.对有n个结点、e条边且使用邻接表存储的有向图进行广度优先遍历,其算法时间复杂度是( )。

数据结构,期末考试试卷,复旦大学计算机科学技术学院-2012

数据结构,期末考试试卷,复旦大学计算机科学技术学院-2012
2
7、 分析对比 AVL 树和 Hash 的时空特性,并讨论它们的适合场合。(6 分)
第 7 页
时空特性: AVL 树是高度平衡的二叉查找树,查找时间复杂度为 O(logn),Hash 的查找时间复杂度为 O(1)。 存储开销 Hash 往往比 AVL 树小。 适合场合: Hash 必须处理冲突,而 AVL 树不存在这种问题。对于删除操作,AVL 树的时间开销很稳定,为 O(logn),而 Hash,如果采用拉链法处理冲突,则删除操作易于实现,如果采用开放定址法,则 删除操作很难实现,因此开放定址法的 Hash 不适合更新频繁的数据存储。另外,AVL 树对数据 的存储是有序的,而 Hash 对数据的存储并不能反映数据之间的大小关系。因此,AVL 树适用于 有序的数据存储,而 Hash 适用于数据量比较大且分布比较均匀,对数据排序无要求的数据存储。
专业
题号 得分
学号
一 二 三
姓名
四 总分
成绩
一、填空题(25%,1~8 题每题 2 分)
( 装 订 线 内 不 要 答 题 ) 1、 设 W 为一个二维数组,其每个数据元素占用 4 个字节,行下标 i 从 0 到 7 ,列下标 j 从 0 到 3 ,则二维数组 W 的数据元素共占用 个字节。若按行顺序存放二维数组 W,其起 始地址为 100(10 进制),则二维数组元素 W[6,3]的起始地址为 (10 进制表示) 。 答:128, 208。 2、 后缀算式 9 2 3 + - 10 2 / - 的值为__________。中缀算式(3+4X)-2Y/3 对应的后缀算 式为_______________________________。 答:-1, 3 4 X * + 2 Y * 3 / -。

《数据结构》习题及答案:第2章 线性表(第1次更新2012-3)

《数据结构》习题及答案:第2章 线性表(第1次更新2012-3)

第2章线性表一、选择题1.表长为N 的顺序表,当在任何位置上插入或删除一个元素的概率相等时,插入一个元素所需移动元素的平均次数为(),删除一个元素需要移动的元素个数为()。

【**,★】A. (N-1)/2B. NC. N+1D. N-1E. N/2F. (N+1)/2G. (N-2)/22.线性表是具有N 个()的有限序列。

【*】A、表元素B、字符C、数据元素D、数据项E、信息3.“线性表的逻辑顺序和物理顺序总是一致的。

”这个结论是()。

【*】A、正确的B、错误的C、不一定,与具体结构有关。

4.线性表采用链式存储结构时,要求内存中可用存储单元的地址()。

【*,★】A、必须是连续的B、部分地址必须是连续的C、一定是不连续的D、连续或不连续都可以。

5.带头结点的单链表为空的判定条件是()。

【*】A、head==NULLB、head->next==NULLC、head->next==headD、head!=NULL6.不带头结点的单链表head 为空的判定条件是()。

【*】A、head==NULLB、head->next==NULLC、head->next==headD、head!=NULL7.非空的循环单链表head 的尾结点P 满足()。

(注:带头结点)【*】A、P->NEXT=NULLB、p=NULLC、p->next==headD、p==head8.在一个具有n 个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是()。

【*,★】A、O(1)B、O(n)C、O(n2)D、O(nlog2n)9.在一个单链表中,若删除P 所指结点的后继结点,则执行()。

【*,★】A、p->next=p->next->nextB、p=p->next;p->next=p->next->nextC、p->next=p->next;D、p=p->next->next;10.在一个单链表中,若在P所指结点之后插入S所指结点,则执行()。

数据结构2011--2012学年试题

数据结构2011--2012学年试题

2011年——2012年第二学期《数据结构》期末试卷(A)一、选择题:(每小题2分,共30分)1、如果在表示树的孩子兄弟链中有6个空的左指针域,7个空的右指针域,5个结点左、右指针域都为空,则该树中树叶的个数( B )A、有7个B、有6个C、有5个D、不能确定2、数据结构是一门研究( B )的程序设计问题中计算机的操作对象以及它们之间的关系和操作等等的学科。

A、数值计算B、非数值计算C、混合计算D、简单计算3、如果用孩子兄弟链来表示一棵具有n(n>1)个结点的树,则在二叉链表中( B )A、至少有n-1个非空的右指针域B、至少有2个空的右指针域C、至少有2个非空的左指针域D、至少有n-1个空的右指针值域4、数据结构在计算机内存中的表示是指( A )。

A、数据的存储结构B、数据结构C、数据的逻辑结构D、数据元素之间的关系5、计算机处理的对象之间通常存在着的一种最简单的线性关系,这类数学模型称( A )。

A、线性的数据结构B、图的数据结构C、格局D、树型数据结构6、算法的主要任务是分析( D )A、算法是否具有较好的可读性B、算法中是否存在语法错误C、算法的功能是否符合设计要求D、算法执行时间和问题规模之间的关系7、用孩子链存储结构表示树,其优点之一是( D )比较方便A、判断两个指定结点是不是兄弟B、找指定的结点双亲C、判断指定结点在第几层D、计算指定结点的度数8、线性表采用链式存储结构时,其地址( D )A、必须是连续的B、一定是不连续的C、部分地址必须是连续的D、连续与否均可以9、在一个单链表中,删除*p结点之后的一个结点操作是( D )A、p next=p;B、p next next=p next;C、p next next=p;D、p next=p next next;10、栈和队列的共同点是( C )A、都是先进后出B、都是先进先出C、只允许在端点处插入和删除元素D、没有共同点11、元素ABCD依次进栈后,栈顶元素是( D )栈底元素是(A )A、AB、BC、CD、D12、串是( D )A、不少于一个字母的序列B、任意个字母的序列C、不少于一个字符的序列D、有限个字符的序列13、串是一种特殊的线性体现在( B )A、可以顺序存储B、数据元素是一个字符C、可以链接存储D、数据元素可以是多个字符14、对于一棵具有n个结点,度为4的树来说,( A )。

2012数据结构题

2012数据结构题

●__(4)__的特点是数据结构中元素的存储地址与其关键字之间存在某种映射关系。

(4)A.树形存储结构B.链式存储结构C.索引存储结构D.散列存储结构●若循环队列以数组 Q[O..m-1] 作为其存储结构变量 rear 表示循环队列中队尾元素的实际位置,其移动按 rear=(rear+1) mod m 进行,变量 length 表示当前循环队列中的元素个数,则循环队列的队首元素的实际位置是__(5)__。

(5)A.rear-length B.(rear-length+m) mod mC.(1+rear+m-length) mod m D.m-length●一个含有n个顶点和e条边的简单无向图,在其邻接矩阵存储结构中共有__(6)__个零元素。

(6)A.e B.2e C.n2-e D.n2-2e●若一棵哈夫曼(Huffman)树共有9个顶点,则其叶子结点的个数为__(7)__。

(7)A.4 B.5 C.6 D.7●若采用邻接矩阵来存储简单有向图,则其某一个顶点i的入度等于该矩阵__(8)__。

(8)A.第i行中值为1的元素个数 B.所有值为1的元素总数C.第i行及第i列中值为1的元素总个数D.第i列中值为1的元素个数●在—棵度为3的树中,若有2个度为3的结点,有1个度为2的结点,则有__(9)__个度为0的结点。

(9)A.4 B.5 C.6 D.7●设结点x和y是二叉树中任意的两个结点,在该二叉树的先根遍历序列中x在y之前,而在其后根遍历序列中x在y之后,则x和y的关系是__(10)__。

(10)A.x是y的左兄弟B.x是y的右兄弟C.x是y的祖先D.x是y的后裔●设顺序存储的某线性表共有123个元素,按分块查找的要求等分为3块。

若对索引表采用顺序查找方法来确定子块,且在确定的子块中也采用顺序查找方法,则在等概率的情况下,分块查找成功的平均查找长度为__(11)__。

(11)A.21 B.23 C.41 D.62DCDBDCCB(顺序查找平均查找长度是:(n+1)/2 (1+3)/2+(41+1)/2=23 123/3=41)●在一棵完全二叉树中,其根的序号为1,_(33)_可判定序号为p和q的两个结点是否在同一层。

数据结构习题课(2012)

数据结构习题课(2012)

数据结构习题课(2012)复习重点1.数据结构的概念,逻辑结构、物理结构的概念及各⾃包含的内容2.算法的特性、设计要求,如何度量算法的时间效率。

3.线性表的顺序/链式存储结构的特点,插⼊、删除算法。

4.栈和队列的逻辑特性,顺序栈的⼊栈/出栈、循环队列的⼊队/出队算法。

5.以三元组顺序表存放的稀疏矩阵的转置算法。

6.⼆叉树的性质及其四种遍历算法。

7.森林与⼆叉树的相互转换。

8.WPL、前缀编码的概念,哈夫曼树的构造算法。

9.图的相关概念,邻接矩阵及邻接表的存储结构。

10.图的深度优先/⼴度优先遍历算法。

11.最⼩⽣成树的两种算法。

12.拓扑排序的意义和算法。

13.最短路径算法。

14.顺序表、有序表的查找算法。

15.⼆叉排序树的性质、插⼊/删除算法、平衡⼆叉树的性质、插⼊算法。

16.哈希表的相关概念,常⽤的冲突处理⽅法。

17.直接插⼊排序、希尔排序、快速排序、堆排序、归并排序的算法。

注意:1.上述每个知识点可能会以任何题型出现,复习的时候别把它们当做“简答题”来复习。

2.红⾊(下划线)标识的知识点或算法,只要求对给出的初始数据,能画出结果则可。

其他的算法则可能会出现在“算法题”中。

⾃测题第1章绪论⼀、判断1.顺序存储⽅式只能⽤于存储线性结构。

(错)2.顺序查找法适⽤于存储结构为顺序或链式存储的线性表。

(对)⼆、选择1.计算机算法必须具备输⼊、输出、( B )等5个特性。

A.可⾏性、可移植性和可扩展性B.可⾏性、确定性和有穷性C.确定性、有穷性和稳定性D.易读性、安全性和稳定性2.算法在发⽣⾮法操作时可以作出处理的特性称为(C )。

A.正确性B.易读性C.健壮性D.可靠性3.数据结构是⼀门研究⾮数值计算的程序设计问题中计算机的(A )以及它们之间的( B )和运算的学科。

A.操作对象B.计算⽅法C.逻辑存储D.数据映像A.结构B.关系C.运算D.算法4.在数据结构中,逻辑上数据结构可分为:(B )A.动态结构和静态结构B.线性结构和⾮线性结构C.紧凑结构和⾮紧凑结构D.内部结构和外部结构5.数据结构主要研究数据的(D )A.逻辑结构B.存储结构C.逻辑结构和存储结构D.逻辑结构和存储结构及其运算的实现6.为了描述n个⼈之间的同学关系,可⽤(C )结构表⽰A.线性表B.树C.图D.队列7.下⾯的程序段违反了算法的(A )原则void sam(){ int n=2;while (!odd(n)) n+=2;printf(n);}A.有穷性B.确定性C.可⾏性D.健壮性三、问答1.什么是逻辑结构和物理结构?各⾃包含哪⼏种?2.线性结构和树型结构的特点分别是什么?3.简述顺序存储结构与链式存储结构在表⽰数据元素之间关系上的只要区别。

数据结构练习题2012信管

数据结构练习题2012信管

2、 设有两个串 p 和 q,求 q 在 p 中首次出现的位置的运算称作:B A.连接 B.模式匹配 C.求子串 D.求串长
3、设 s =’I AM A STUDENT’, t =’GOOD’, q=’WORKER’。求: 答: StrLength(s) =14 StrLength(t) =4 SubString(s, 8, 7)= ‘STUDENT’ 第五章 1、一个二维数组 A,行下标的范围是 1 到 6,列下标的范围是 0 到 7,每个数
3
答:入队(尾部插入) :rear->next=S; rear=S; 出队(头部删除) : front->next=p->next; 8、什么叫“假溢出” ?如何解决? 答:在顺序队中,当尾指针已经到了数组的上界,不能再有入队操作,但 其实数组中还有空位置,这就叫“假溢出”。解决假溢出的途径———采 用循环队列。 9、数组Q[n]用来表示一个循环队列,f 为当前队列头元素的前一位置,r 为 队尾元素的位置。假定队列中元素的个数小于 n,计算队列中元素的公式为: (A) r-f (B) (n+f-r)% n (C)n+r-f (D) (n+r-f)% n 4 种公式哪种合理? 当 r ≥f 时(A)合理;当 r < f 时(C)合理;综合 2 种情况,以(D) 的表达最为合理 10、在一个循环队列中,若约定队首指针指向队首元素的前一个位置。那么, 从循环队列中删除一个元素时,其操作是 先 移动队首指针 ,后 取出元 素 。 11、线性表、栈与队的异同点 答:相同点:逻辑结构相同,都是线性的;都可以用顺序存储或链表存储; 栈和队列是两种特殊的线性表,即受限的线性表(只是对插入、删除运算 加以限制) 。 不同点: ① 运算规则不同,线性表为随机存取,而栈是只允许在一端进行插入 和删除运算,因而是后进先出表 LIFO;队列是只允许在一端进行插入、另 一端进行删除运算,因而是先进先出表 FIFO。 ② 用途不同,线性表比较通用;堆栈用于函数调用、递归和简化设计 等;队列用于离散事件模拟、多道作业处理和简化设计等。 第四章 1、串是一种特殊的线性表,其特殊性体现在: B (A)可以顺序存储 (C)可以链式存储 (B)数据元素是一个字符 (D)数据元素可以是多个字符

2012数据结构_习题及程序设计整理

2012数据结构_习题及程序设计整理

第二章1、首尾顺序逆置2、找出顺序表中最大值和最小值及位置3、头插法算法4、尾插法:5、带头结点的单链表,向表头插入一个结点:6、单链表中查找第i个结点:8、单链表删除操作:9、重要习题,头结点与尾结点互换:10、重要习题,一个单链表拆为两个奇偶单链表:试写一个算法,将一个头结点为a的带头结点的单链表A分解成两个单链表A和B,其中头结点指针分别为a和b,使得A链表中含有原链表A中序号为奇数的元素,而B链表中含有原链表中序号为偶数的元素,并保持原来的相对顺序。

11、循环链表插入结点后仍然保持有序:12、重要习题(删除表中所有数值相同的多余元素):13、双向链表的删除操作:14、双向链表的插入操作:在带头结点的双向循环链表中插入一个新结点,需要修改的指针数量是4个。

包括新插入的新结点的指针,还有插入结点的前面结点的next域,和后面结点的prior域。

第二章课后习题14、设计两个顺序表A和B,且都递增有序,试写一算法,从A中删除与B中相同的元素(也就是计算A-B)。

15、已知head P指向结点与其后继结点位置交换。

(q为p的后继结点,s r16、已知两个单链表A和B分别表示两个集合,其元素值递增有序,试写一算法,求A和B的交集C,要求C同样以元素递增的单链表形式存储。

r=head; 查找p的前趋结点y的结点。

第三章一、队列算法f31的功能是清空带头结点的链队列Q,请填空。

Type struct node{ DataType data;Struct node *next;}QueueNode;{QueueNode *front; //队头指针二、填空题15、如果编号为1,2,3的3辆列车进入一个栈式结构的站台,那么可能得到的3辆车出站序列有哪些?不可能出现的序列是什么?16、简述下列程序算法的功能(假设元素为整数类型)(1) void ex31(SeqStack *S){int A[80],i,n;n=0;while(!empty(S)){ A[n]=pop[S];n++;}for(i=0;i<n;i++)push(S,A[i]);}答案:此算法功能是通过一个数组将一个栈中的所有元素逆置存放。

1252数据结构历年试题及答案

1252数据结构历年试题及答案

试卷代号:1252中央广播电视大学2012-2013学年度第二学期“开放本科”期末考试数据结构【本)试题一、单项选择题(每小题2分,共30分)1.在C语言中,顺序存储长度为3的字符串,需要占用( )个字节。

A.4 B.3C.6 D.122。

串函数StrCat(a,b)的功能是进行串( )。

A.比较 B.复制C。

赋值 D.连接3.-棵有n个结点采用链式存储的二叉树中,共有( )个指针域为空。

A.n+l B.nC.n-l D.n-24.设一棵哈夫曼树共有n个非叶结点,则该树有( )个叶结点。

A.n B.n+lC.n-l D.2n5.从一个栈顶指针为top的链栈中删除一个结点时,用变量x保存被删结点的值,则执行( )。

A. x=top->data;top=top->nextB.x=top->dataC. top= top->next; x=top->dataD.top=top->next;x=data6.一棵完全二叉树共有5层,且第5层上有六个结点,该树共有( )个结点。

A.30 B.20C.21 D.237.在一个无向图中,所有顶点的度数之和等于边数的( )倍。

^.O上;.Z.3C.1.5 D.28.已知如图1所示的一个图,若从顶点V,出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。

9.已知如图2所示的一个图,若从顶点a出发,按广度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。

A. abcedfB. abcefdC. aebcfdD. acfdeb10.对二叉排序树进行( )遍历,可以使遍历所得到的序列是有序序列。

A.按层次 B.后序C.中序 D.前序11.在有序表(2,4,7,14,34,43,47,64,75,80,90,97,120)中,用折半查找法查找值80 时,经( )次比较后查找成功。

A.4 B.2赢“C.3 D.512.有一个长度为9的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的平均比较次数为( )。

数据结构(一)绪论

数据结构(一)绪论

1.3 算法和算法分析 1.3.1 算法:
是对特定问题求解步骤的一种描述,是指令的有限序列,其中 每一条指令表示一个或多个操作。 算法具有以下五个特性: (1)有穷性 一个算法必须总是在执行有穷步之后结束,且每 一步都在有穷时间内完成。 (2)确定性 算法中每一条指令必须有确切的含义。不存在二义 性。 (3)可行性 一个算法是可行的。即算法描述的操作都是可以通 过已经实现的基本运算执行有限次来实现的。 (4)输入 一个算法有零个或多个输入,这些输入取自于某个特 定的对象集合。 (5)输出 一个算法有一个或多个输出,这些输出是同输入有着 某些特定关系的量。
数据元素:
是数据(集合)中的一个“个体” 是数据结构中讨论的基本单位
数据结构主要指逻辑结构和物理结构 数据之间的相互关系称为逻辑结构。通常 分为四类基本结构: 一、集合 结构中的数据元素除了同属于一 种类型外,别无其它关系。 二、线性结构 结构中的数据元素之间存在一 对一的关系。 三、树型结构 结构中的数据元素之间存在一 对多的关系。 四、图状结构或网状结构 结构中的数据元素 之间存在多对多的关系。
求整数n(n>=0)阶乘的算法如下,其时间复杂度, int fact(int n) {if (n<=1) return 1; return n*fact(n-1); }
A ) O(log2 n) B) O(n)
C)
O(n (2分)
作业:
1. 计算时间复杂度 sum=1; for(i=0;sum<n;i++) sum+=i; 2.设给定若干n值,比较两函数n2和50nlog2n的增长 趋势,并确定在什么范围内,函数n2的值大于
例4 for(i=1;i<=n;++i) for(j=1;j<=n;++j) {++x;s+=x;} 语句频度为:n2 其时间复杂度为:O(n2) 即时间复杂度为平方阶。

数据结构专项练习

数据结构专项练习

数据结构专项练习1.(NOIP2013) 已知一棵二叉树有 2013 个节点,则其中至多有( )个节点有 2 个子节点。

A. 1006B. 1007C. 1023D. 10242.(NOIP2013)在一个无向图中,如果任意两点之间都存在路径相连,则称其为连通 图。

右图是一个有 5 个顶点、8 条边的连通图。

若要使它不再是连通 图,至少要删去其中的( )条边。

A. 2B. 3C. 4D. 5 3.(NOIP2013)二叉查找树具有如下性质:每个节点的值都大于其左子树上所有节点的值、小于其右子 树上所有节点的值。

那么,二叉查找树的()是一个有序序列。

A. 先序遍历 B. 中序遍历 C. 后序遍历 D. 宽度优先遍历4.(NOIP2013)二分图是指能将顶点划分成两个部分,每一部分内的顶点间没有边相连的简单无向图。

那么,12 个顶点的二分图至多有()条边。

A. 18 B. 24 C. 36 D. 665. (NOIP2013) 以 A0 作为起点,对下面的无向图进行深度优先遍历时(遍历的顺序与顶点字母的下标 无关),最后一个遍历到的顶点可能是( )。

A. A1B. A2C. A3D. A46. (NOIP2012) 在程序运行过程中,如果递归调用的层数过多,会因为( )引发错误。

A .系统分配的栈空间溢出B .系统分配的堆空间溢出C .系统分配的队列空间溢出D .系统分配的链表空间溢出 7. (NOIP2012)从顶点A0出发,对有向图( )进行广度优先搜索(BFS )时,一种可能的遍历顺序是 。

8.(NOIP2012)如果一个栈初始时为空,且当前栈中的元素从栈底到栈顶依次为a ,b ,c (如右图所示),另有元素d 已经出栈,则可能的入栈顺序是( )。

A .a, b, c, dB .b, a, c, dC .a, c, b, dD .d, a, b, c 9. (NOIP2012)一棵二叉树一共有19个节点,其叶子节点可能有( )个。

上海交大2012年数据结构上机考试题目

上海交大2012年数据结构上机考试题目

只允许用iostream 、fstream、cstdio运行时间1s 内存:32M1.Ordered FractionsConsider the set of all reduced fractions between 0 and 1 inclusive with denominators less than or equal to N.Here is the set when N = 5:0/1 1/5 1/4 1/3 2/5 1/2 3/5 2/3 3/4 4/5 1/1Write a program that, given an integer N between 1 and 160 inclusive, prints the fractions in order of increasing magnitude.PROGRAM NAME: frac.cppINPUT FORMATOne line with a single integer N.SAMPLE INPUT (file frac.in)5OUTPUT FORMATOne fraction per line, sorted in order of magnitude.SAMPLE OUTPUT (file frac.out)0/11/51/41/32/51/23/52/33/44/51/1给定N个整数集合(S[1],S[2],…,S[N])及M个集合操作,编写程序计算这些操作执行后N 个集合的值。

一个集合操作是一个三元组(k,x,y),其中k表示对集合S[x]和S[y]所进行的操作。

-当k=1时,更新S[x]的值为union(S[x],S[y])-当k=2时,更新S[x]的值为insersect(S[x],S[y])-当k=3时,更新S[x]的值为complement(S[x],S[y])对于两个集合A和B,我们如下定义三种运算:-union(A,B)中的元素可以在A中,或在B中,或同时在A和B中-intersect(A,B)中的元素既在A中也在B中-complement(A,B)中的元素在B中但不在A中程序文件名:set.cpp输入格式第1行是两个正整数N和M第2行到第N+1行定义了N个集合最初的值第i行(2<=i<=N+1)以一个非负整数c开始,接下来是c个互不相同的非负整数a[1],a[2],...,a[c],表示S[i]={a[1],a[2],...,a[c]}第N+2行到第M+N+1行定义了M个集合操作第j行(N+2<=j<=M+N+1)包含三个正整数k、x和y输入中所有整数都是小于1000,30%的测试数据中的整数都小于300样例输入(文件set.in)3 35 10 20 30 40 503 60 40 203 10 20 302 3 23 3 21 1 3输出格式输出N行,其中第i 行为集合S[i]的大小。

2数据结构试卷a答案

2数据结构试卷a答案

2011~2012学年第 1 学期期末考试试卷(A 卷)课程名称: 数据结构 任课教师姓名:卷面总分: 100 分 考试时长: 100 分钟 考试类别:闭卷 院(系): 专 业: 年级: 2010 姓 名: 学 号:阅卷教师(签字):一、 单项选择题(每题2分,共10题20分)1.以下那一个术语与数据的存储结构无关? 。

A .栈 B .哈希表 C .线索树D .双向链表2.链表不具有的特点是 。

A .插入、删除不需要移动元素B .可随机访问任一元素C .不必事先估计存储空间D .所需空间与线性表长度成正比3.算术表达式a+b*(c+d/e )转为后缀表达式后为 。

A .ab+cde/* B .abcde/+*+ C .abcde/*++ D .abcde*/++4.二维数组A[10][20]采用列优先的存储方法,若每个元素占2个存储单元,设A[0][0]的地址为100,则元素A[7][6]的存储地址为 。

A .232B .234C .390D .392装订线5.若一棵二叉树具有10 个度为2 的结点,5 个度为1 的结点,则度为0 的结点个数是 B 。

A.9 B.11 C.15 D.不确定6.一棵二叉树中序序列为FEABDC,后序序列为FBADCE,则层序序列为 D 。

A. ABCDEFB. EFCDBAC. FECDABD.7.在有向图G的是 D 。

A.G 中有弧<Vi,Vj>B.G 中有一条从Vi 到Vj 的路径C.G 中没有弧<Vi,Vj>D.G 中有一条从Vj 到Vi 的路径8.对于二叉排序树,下面的说法 C 是正确的。

A.二叉排序树是动态树表,查找不成功时插入新结点时,会引起树的重新分裂和组合(不用移动元素的树)B.对二叉排序树进行层序遍历可得到有序序列(应该是中序遍历)C.用逐点插入法构造二叉排序树时,若先后插入的关键字有序,二叉排序树的深度最大D.在二叉排序树中进行查找,关键字的比较次数不超过结点数的1/2(取决于二叉排序树的形状)9.一组记录的关键字为{47、75、55、30、42、90},则用快速排序方法并以第一个记录为支点得到的第一次划分结果是。

习题2012-9

习题2012-9

习题11.解释以下概念:逻辑结构,存储结构,操作,数据结构,数据结构的表示,数据结构的实现,抽象数据类型,算法,算法的时间代价,算法的空间代价,大O 表示法。

2.理解以下关系:算法与数据结构的关系;数据结构与抽象数据类型的关系;算法和数据结构与问题求解的关系。

3. 写出下列程序段的平均情况下的时间代价O表示式。

(1) a=b+c;d=a+e(2) sum=0;for (i=0;i<3;i++)for (j=0;j<n;j++)sum++;(3) x=n;y=0;while (x>=(y+1)*(y+1))y++;(4) s=0;if(even(n))for (i=0;i<n;i++)sum++;elses=s+n;(5) x=66;n=200;while (n>0){if(x>lO0){ x=x-10;n=n-1;}elsex=x+1;}4.对于给定的n个元素,可以构造出的逻辑结构有,,,四种。

5.按增长率由小到大的顺序排列下列各函数:2100, (32)n, (23)n, (43)n, n n, n32, n!, n, log2n, n/log2n习题22.1已知L是无头结点的单链表,且p结点既不是第一个结点,也不是最后一个结点,试从下列提供的语句中选出合适的语句序列:(1)在p结点之后插入s结点:(2)在p结点之前插入s结点:(3)在单链表L首插入s结点:(4)在单链表L后插入s结点:提供的语句:①p->next=s;②p->next=p->next->next;③p->next=s->next;④s->next=p->next;⑤s->next=L;⑥s->next=p;⑦s->next=NULL;⑧q=p;⑨while(p->next!=q)p=p->next;⑩while(p->next!=NULL)p=p->next;⑾p=q;⑿p=L;⒀L=s;⒁L=p;2.2已知p结点是某双向链表的中间结点,试从下列提供的语句中选出合适的语句序列。

数据结构 试卷A

数据结构 试卷A

安阳师范学院计信学院信管、计科专升本专业《数据结构》考试2012—2013学年下学期期末考试试卷A一单项选择题(本大题共20小题,每小题1分,共20分) 1.组成数据的基本单位是( c )A.数据项 B.数据类型 C .数据元素 D .数据变量2.下面程序段的时间复杂度为(a )。

for(i=1;i<=n;i++)for(j=i;j<=n;j++) s++; A .O(1)B .O(n)C .O(n )log 2n)D .O(n 2)3.在一个长度为n 的顺序存储线性表中,向第i 个元素(1≤i ≤n+1)之前插入一个新元素时,需向后移动( b )个元素。

A .n-iB .n-i+1C .n-i-1D .i4.设单链表中指针p 指向结点A ,若要删除A 后的结点且该结点存在,则需要修改指针的操作为( c )。

A .p->next=p->next->nextB .p=p->nextC .p=p->next->nextD .p->next=p5.若让元素1,2,3依次进栈,则出栈次序不可能出现(a )种情况。

A 、3,2,1B 、2,1,3C 、3,1,2D 、1,3,2 6.在一个循环顺序队列中,队首指针指向队首元素的( c )位置。

A 、当前B 、后面C 、前一个D 、后一个7.假定一个链队的队首和队尾指针分别为front 和rear ,则判断队空的条件是( d )。

A 、front==NULLB 、front!=NULLC 、rear!=NULLD 、front==rear8.二叉树第i(i ≥1)层最多有( b )个结点。

A .2iB . 2i-1C .2iD .2i -1 9.如果结点A 有3个兄弟,而且B 为A 的双亲,则B 是度为( a )A.4 B.3C .5D .1 10.当待排序序列的关键码是随机分布时,下列哪种排序算法的平均时间复杂度最优( c )。

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

数据结构作业(一) 2012-9-16
年级 2012B 班级 姓名 学号
一、填空题
1. 数据结构按逻辑结构可分为两大类,他们分别是 和 ,其中___________分为____________、___________和___________三种。

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

常用的两种存储方法为 和 。

3. 数据结构研究内容包括数据的 、数据的 和数据的 这三方面的内容。

4. 数据元素是数据的_____________单位。

是数据不可分割的最小单位。

5. 一个算法的效率可分为 效率和 效率。

6. 若一个算法中的语句频度之和为T(n)=3720n+4nlogn ,则算法的时间复杂度为 。

7. 按顺序存储方式存储的线性表称为 ,按链式存储方法存储的线性表称为 ;若经常要对线性表进行插入和删除运算,则最好采用 存储结构,若经常要对线性表进行查找运算,则最好采用 存储结构。

8. 在长度为n 的顺序存储的线性表中,删除第i (1<=i<=n )个元素时,需向前移动 个元素;在表的第i (1<=i<=n+1)号位置上插入新结点,需向后移动________个元素。

9. 队列的插入操作在 进行,删除操作在 进行。

10. 在栈结构中,允许插入、删除的一端称为 , 另一端称为 。

11. 假设以S 和X 分别表示进栈和退栈操作,则对输入序列a,b,c,d,e 进行一系列栈操作SSXSXSSXXX 之后,得到的输出序列为 。

12. 设数组S[M]存储一个顺序栈的元素,变量top 指示下一个入栈元素在数组中的下标位置,栈为空的条件是___ _____,栈为满的条件是___ _____。

13. 在一个用一维数组a[N]存储的顺序循环队列中,该队列中的元素最少为 个,最多为 个。

14. 在具有SIZE 个数据元素的顺序存储的循环队列中,假定front 和rear 分别指示队列里第一个元素的前一位置和最后一个元素的位置,则判断队空的条件是________ ;队满的条件是 ;队中元素个数为 。

15. 如图所示,用一个
体积为MAX 的数
组同时构造两个
栈S1和S2,栈S1
的栈底是下标为0的这一端,栈S2的栈底是下标为MAX-1的这一端,整型变量top1标记栈S1的栈顶位置,整型变量top2标记栈S2的栈顶位置。

两个栈的初始状态为:top1=0,top2=MAX-1。

则栈满的条件为 。

012MAX-1
二、选择题
1.已知n为问题规模,则下面程序段的时间复杂度为。

for (i=0;i<=n-1;i++)
for (j=i+1;j<=n-1;j++)
s++;
A. O(1)
B. O(n)
C. O(n2)
D. O(log2n)
2.下列时间复杂度最好的是;最差的是。

A. O(2n)
B. O(log2n)
C. O(n)
D. O(n2)
3.一个存储结点存放一个。

A. 数据项
B. 数据元素
C. 数据结构
D. 数据类型
4.线性表若采用顺序存储结构时,要求内存中可用存储单元的地址;若采用链式存储结构时,要求内存中可用存储单元的地址。

A. 必须连续
B. 部分地址必须连续
C. 一定是不连续的
D. 连续或不连续都可以5.线性表的长度是。

A. 顺序存储方式下数组占用的存储空间的大小
B. 表中的数据元素的个数
C. 链式存储方式下所有结点占用的存储空间的大小
D. 所能存储的最大结点的个数6.在程序中,为了设置一个空的顺序表,必须。

A. 给各数组元素赋空值
B. 给各顺序表元素赋空值
C. 给表示顺序表长度的变量赋零值
D. 给数组变量名赋初始值
7.已知一个顺序存储的线性表,设每个结点需占m个存储单元,若第一个结点的地址为Da1 ,则第i 个结点的地址为。

A. Da1 +(i-1)*m
B. Da1 +i*m
C. Da1 -i*m
D. Da1 +(i+1)*m
8.在栈中存取数据的原则是;在队列中存取数据的原则是。

A. 先进先出
B. 后进先出
C. 后进后出
D. 随意进出
9.一个栈的输入序列为A B C D E,则下列序列中不可能是栈的输出序列的是_______。

A. BCDAE
B. DCABE
C. BCADE
D. AEDCB
10.若进栈序列为a,b,c,则通过入出栈操作可能得到的a,b,c的不同排列个数为。

A. 4
B. 5
C. 6
D. 7
11.已知一个栈的进栈序列是1,2,3,…,其输出序列是p1,p2,…,p n,若p1=n,则p i的值是。

A. i
B. n-i
C. n-i+1
D. 不确定
12.假定利用数组a[N]顺序存储一个栈,用top表示下一个入栈元素的下标位置,top==0表示栈空,并已知栈未满,当元素x进栈时所执行的操作为。

A. a[--top]=x;
B. a[++top]=x;
C. a[top++]=x;
D. a[top--]=x;
13.已知循环队列的存储空间为数组data[21],假定front和rear分别指示队列里第一个元素的前一位置和最后一个元素的位置,且front的值为8,rear的值为3,则该队列的当前长度为。

A. 5
B. 6
C. 16
D. 17
14.在栈中出栈操作的时间复杂度为。

A. O(1)
B. O(log2n)
C. O(n)
D. O(n2)
三、阅读程序
1、已知一个顺序表为已排序的学生信息表(按学号排序),顺序表数据类型定义为:
typedef struct {
int xh; /*学号*/
float sg; /*身高*/
int sex; /*性别,0为男生,1为女生*/
} datatype;
typedef struct{
datatype data[MAX]; /*存放顺序表元素的数组*/
int last; /*表示data中实际存放元素个数*/
}Seqlist;
void insertX(Seqlist *lp, datatype x)
{ int i;
i=lp->last-1;
while (i>=0 && lp->data [i].xh > x.xh )
{ lp->data [i+1] = lp->data [i];
i--;
}
lp->data [i+1] = x;
lp->last ++;
}
问:该算法函数功能是什么?
2、设在头文件stack.h中已定义如下函数,原型为:
初始化栈:void InitStack(SeqStack *s)
入栈:void Push(SeqStack *s, datatype e)
出栈:datatype Pop(SeqStack *s)
判栈空:int EmptyStack(SeqStack *s)
/* ex3-2.cpp */
#include <stdio.h>
typedef char datatype;
#include “stack.h”
void Trans(int m, int k, char s[])
{ int i,d;
SeqStack st;
InitStack(&st);
do{
d=m%k;
if(d<10) Push(&st, d+’0’);
else Push(&st, d-10+’a’);
}while(m/=k);
i=0;
while(!EmptyStack(&st))
s[i++]=Pop(&st);
s[i]=’\0’;
}
void main()
{ int m, k;
char s[10];
scanf(“%d %d”, &m, &k);
Trans(m, k, s);
printf(“\ns=%s”, s);
}
运行ex3-2.cpp程序,当输入值为:493 13 ,输出结果是:
四、算法设计题
已知顺序表数据类型定义为:
#define MAX 100
typedef struct{
int data[MAX];
int last; /*顺序表长度*/
}SeqList;
(1)设计一个函数float avgList(SeqList *lp),统计lp指向的顺序表中元素的平均值并返回。

(2)设计一个函数void splitList(SeqList *lp),把lp指向的顺序表中的整数拆分成一个所有奇数在前、所有偶数在后的顺序表。

(3)设计一个函数void deleX(SeqList *lp,int x),在lp指向的顺序表中删除所有值为x的元素。

相关文档
最新文档