2015级软件工程专业《数据结构与算法》上机题目 (1)

合集下载

数据结构与算法 试题及答案

数据结构与算法 试题及答案

绪论一、填空题1、数据的逻辑结构是数据元素之间的逻辑关系,通常有下列4类:集合_、线性结构_、树型结构_、图状结构_。

2、数据的存储结构是数据在计算机存储器里的表示,主要有4种基本存储方法:顺序存储_、链式存储_、索引存储_、散列存储_。

二、选择题1、一个算法必须在执行有穷步之后结束,这是算法的(B )。

A、正确性B、有穷性C、确定性D、可行性2、算法的每一步必须有确切的定义,也就是说,对于每步需要执行的动作必须严格、清楚地给出规定,这是算法的(A)。

A、正确性B、有穷性C、确定性D、可行性3、算法原则上都是能够有机器或人所完成的。

整个算法好象是一个解决问题的“工作序列”,其中的每一步都是我们力所能及的一个动作,这是算法的(D)A、正确性B、有穷性C、确定性D、可行性三、简单题1、什么是数据结构?什么是算法?两者有什么关系?什么是数据结构?数据结构是按某种逻辑关系组织起来的一批数据(或称带结构的数据元素的集合)应用计算机语言并按一定的存储表示方式把它们存储在计算机的存储器中,并在其上定义了一个运算的集合。

什么是算法?广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”两者有什么关系?算法与数据结构关系密切。

选择的数据结构是否恰当直接影响算法的效率;而数据结构的优劣由算法的执行来体现。

2、什么是复杂度和空间复杂度?时间复杂度是指执行算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。

3、数据的逻辑结构分几种?存储结构又有哪几种?数据的逻辑结构:结构定义中的“关系”,描述的是数据元素之间的逻辑关系;包括线性结构(线性表、栈、队、串、数组)和非线性结构(图形结构、树形结构);数据的存储结构(物理结构):数据结构在计算机中的表示(又称映像),包括数据元素的表示和关系德表示。

有顺序存贮(向量存贮)、链式存贮、索引存贮、散列存贮。

线性表1、一个线性表第一个元素的存储地址是100,每个元素的长度为2,则第5 个元素的地址是( B)。

2015级软件工程专业《数据结构与算法》上机题目 (1)

2015级软件工程专业《数据结构与算法》上机题目 (1)

1868: 2015级软件班《数据结构与算法》实验1:线性表的应用(6学时)Description输入一个字符串,按照字符串的输入顺序创建一个线性表A。

线性表A中包含有三类字符:数字字符、字母字符、其他字符。

试写一个函数实现对线性表A的拆分,使得线性表A、B、C分别各自指向同一类字符。

要求如下:(1)在拆分时,必须使用原表A的结点空间,不能额外创建新结点。

(2)拆分后,原表A指向数字字符,且其内容的前后次序与原表中的前后次序必须一致,新的表B指向字母字符,新的表C指向其他字符。

其中要求删除B中的重复结点(如“abbcdexec”,变为“abcdex”)。

(3)判断拆分后的表A是否是中心对称的(如123321或12321都是中心对称的),若是,则输出1,否则输出0。

Input输入格式要求:输入一行字符串,可以带空格,并以‘?’做为输入结束标志,中间不能输入’?‘。

字符串长度不做限制。

如可以输入:1aabccd2e3f(!3c<2g1>?Output输出格式要求:前3行分别输出表A、B、C的内容(若某个表为空表,则相应行输出-1),第4行输出表A是否为对称的标志。

如输出:123321 (拆分后表A的内容)abcdef g (拆分后表B的内容)(!<> (拆分后表C的内容)1 (拆分后表A是中心对称的)Sampl e Input1aabccd2e3f(!3c<2g1>?Sampl e Output123321abcdefg(!<>1HINT为了方便判断线性表是否为中心对称的,可以使用双向链表结构(但不是必须的)。

1869: 2015级软件工程专业《数据结构与算法》实验2:表达式求值(9学时~12学时)Description表达式求值是计算机实现程序设计语言中的基本问题之一,也是栈应用的一个典型例子,通过本实验,对输入的一个表达式进行求值。

[实验目的]掌握栈的应用;掌握算符优先表达式求值的算法;掌握字符串处理和数值的转换。

数据结构与算法试题(1)

数据结构与算法试题(1)

一、选择题1.在逻辑上可以把数据结构分成(A)A.线性结构和非线性结构B.动态结构和静态结构C.紧凑结构和非紧凑结构D.内部结构和外部结构2. 单链表中各结点之间的地址(C)A.必须连续B.部分必须连续C.不一定连续D.以上均不对3.在一个长度为n的顺序表中向第i个元素(0<i<=n+1)之前插入一个新元素时,需向后移动(B)个元素。

A、n-iB、n-i+1C、n-i-1D、i4. 插入和删除操作只能在一端进行的线性表,称为(C)。

A.队列B.线性表C.栈D.循环队列5、队列是仅允许在()进行插入,而在()进行删除。

(A)A.队尾,队首B.队尾,队尾C.队首,队尾D.队首,队首6.链表适合于(A)查找。

A.顺序B.二分C.随机D.顺序或二分7.数据的基本单位是(A)。

A.数据元素B.数据结构C.数据项D.数据对象8.下列哪个不是算法的特性(B)。

A.有穷性B.可数性C.可行性D.确定性9.在表长为n的顺序表中进行线性查找,它的平均查找长度为(B)。

A.ASL=nB.ASL=(n+1)/2C.ASL=n+1D.ASL=log2n10. 一个线性表第一个元素的存储地址是320,每个元素的长度为3,则第五个元素的地址是(C)。

A.311B.328C.332D.31311.设front、rear分别为循环双向链表结点的左指针和右指针,则指针P所指的元素是双循环链表L的尾元素的条件是(D)。

A.P==LB.P->front==LC.P==NULLD.P->rear==L12. 已知P为单链表中的非首尾结点,删除P结点的后继结点Q的语句为(A)。

A.P->NEXT=Q->NEXT;FREE(Q);B.Q->NEXT=P; FREE(Q);C.Q->NEXT=P->NEXT;FREE(Q);D.P->NEXT=S;S->NEXT=P;13.循环队列SQ队满的条件是(B)。

数据结构与算法复习题库含答案

数据结构与算法复习题库含答案

数据结构复习题第一章概论一、选择题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 )。

fori0;im;i++forj0;jn;j++a[i][j]i*j;A. Om2B. On2C. Om*nD. Om+n6、算法是( D )。

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

A. OnB. Onlog2nC. On2D. Olog2n8、下面程序段的时间复杂度为( C )。

i1;whileinii*3;A. OnB. O3nC. Olog3nD. On39、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的( B )和运算等的学科。

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

is0;whilesni++;s+i;A. OnB. On2C. Olog2nD. On311、抽象数据类型的三个组成部分分别为( A )。

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

2015考研计算机数据结构试题及答案

2015考研计算机数据结构试题及答案

2015年考研必备资料2015年考研计算机数据结构试题及答案目录2015年考研计算机数据结构试题及答案(1) (2)2015年考研计算机数据结构试题(1) (2)2015年考研计算机数据结构试题答案(1) (5)2015年考研计算机数据结构试题及答案(2) (6)2015年考研计算机数据结构试题(2) (6)2015年考研计算机数据结构试题答案(2) (9)2015年考研计算机数据结构试题及答案(3) (11)2015年考研计算机数据结构试题(3) (11)2015年考研计算机数据结构试题答案(3) (13)2015年考研计算机数据结构试题及答案(4) (15)2015年考研计算机数据结构试题(4) (15)2015年考研计算机数据结构试题答案(4) (17)2015年考研计算机数据结构试题及答案(5) (19)2015年考研计算机数据结构试题(5) (19)2015年考研计算机数据结构试题答案(5) (21)2015年考研计算机数据结构试题及答案(1)2015年考研计算机数据结构试题(1)一、选择题(24分)1.下列程序段的时间复杂度为( )。

i=0,s=0; while (s(A) O(n1/2) (B) O(n1/3) (C) O(n) (D) O(n2)2.设某链表中最常用的操作是在链表的尾部插入或删除元素,则选用下列( )存储方式最节省运算时间。

(A) 单向链表 (B) 单向循环链表(C) 双向链表 (D) 双向循环链表3.设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B插入结点X的操作序列为( )。

(A) s->next=p->next;p->next=-s; (B) q->next=s; s->next=p;(C) p->next=s->next;s->next=p; (D) p->next=s;s->next=q;4.设输入序列为1、2、3、4、5、6,则通过栈的作用后可以得到的输出序列为( )。

《数据结构与算法》习题与答案

《数据结构与算法》习题与答案

《数据结构与算法》习题与答案(解答仅供参考)一、名词解释:1. 数据结构:数据结构是计算机存储、组织数据的方式,它不仅包括数据的逻辑结构(如线性结构、树形结构、图状结构等),还包括物理结构(如顺序存储、链式存储等)。

它是算法设计与分析的基础,对程序的效率和功能实现有直接影响。

2. 栈:栈是一种特殊的线性表,其操作遵循“后进先出”(Last In First Out, LIFO)原则。

在栈中,允许进行的操作主要有两种:压栈(Push),将元素添加到栈顶;弹栈(Pop),将栈顶元素移除。

3. 队列:队列是一种先进先出(First In First Out, FIFO)的数据结构,允许在其一端插入元素(称为入队),而在另一端删除元素(称为出队)。

常见的实现方式有顺序队列和循环队列。

4. 二叉排序树(又称二叉查找树):二叉排序树是一种二叉树,其每个节点的左子树中的所有节点的值都小于该节点的值,而右子树中的所有节点的值都大于该节点的值。

这种特性使得能在O(log n)的时间复杂度内完成搜索、插入和删除操作。

5. 图:图是一种非线性数据结构,由顶点(Vertex)和边(Edge)组成,用于表示对象之间的多种关系。

根据边是否有方向,可分为有向图和无向图;根据是否存在环路,又可分为有环图和无环图。

二、填空题:1. 在一个长度为n的顺序表中,插入一个新元素平均需要移动______个元素。

答案:(n/2)2. 哈希表利用______函数来确定元素的存储位置,通过解决哈希冲突以达到快速查找的目的。

答案:哈希(Hash)3. ______是最小生成树的一种算法,采用贪心策略,每次都选择当前未加入生成树且连接两个未连通集合的最小权重边。

答案:Prim算法4. 在深度优先搜索(DFS)过程中,使用______数据结构来记录已经被访问过的顶点,防止重复访问。

答案:栈或标记数组5. 快速排序算法在最坏情况下的时间复杂度为______。

2015四川省数据结构与算法试题及答案

2015四川省数据结构与算法试题及答案
C) 对角矩阵 D) 对称矩阵
36、栈进行插入和删除操作的特点是( A )。
A)LIFO B)FIFO
C)FCFS D)HPF
37、广义表A=(A,B,(C,D),(E,(F,G))),则head(tail(head(tail(tail(A)))))=( D )。
23、与无向图相关的术语有( C )。
A)强连通图 B)入度
C)路径 D)弧
24、在数据结构中,从逻辑上可以把数据结构分为( C )。
A)动态结构和静态结构 B)紧凑结构和非紧凑结构
C)线性结构和非线性结构 D)内部结构和外部结构
A)top不变 B)top=0 C)top-- D)top++
29、n个顶点的图的最小生成树必定( D ),是不正确的描述。
A)不唯一 B)权的总和唯一
C)不含回路 D)有n条边
30、设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a??11为第一个元素,其存储地址为1,每元素占1个地址空间,则a85的地址为( B )。
A)插入 B)读元素
C)查找 D)定位
45、下列序列中,执行第一趟快速排序后得到的序列是( A )。
A)[d,a,e,d,b]f[h,g] B) [c,e,a,d]f[h,g,b]
C) [g,a,e,c,b]f[d,h] D) [a,b,c,d,]f[e,g,h]
C)建立在相应逻辑结构和存储结构上的算法 D)包括以上三个方面
43、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( D )存储方式最节省时间。
A)顺序表 B)双链表 C)带头结点的双循环链表 D)单循环链表

数据结构与算法知识题库与答案

数据结构与算法知识题库与答案

数据结构与算法知识题库与答案1.冒泡排序的每一趟的过程是要比较()元素,如果逆序进行交换()。

[单选题] *A 相邻√B 都不对C 不相邻D 首尾2.冒泡排序要使用()语句判断两个相邻元素是否是逆序()。

[单选题] *A forB do-whileC whileD if√3.如果待排序序列是完全有序的,使用改进的冒泡排序,只需要()趟排序()。

[单选题] *A 三B 四C 一√D 二4.以下序列,采用优化的冒泡排序从小到大排序,排序比较次数最少的是()。

[单选题] *A 34,9,23,87,52,11B 23,98,17,33,71,2C 12,23,87,33,38,46√D 91,23,67,19,61,995.冒泡排序要使用()语句来完成排序()。

[单选题] *A for√B do-whileC whileD if6.N个记录使用优化的冒泡排序最少需要()趟排序,可以完成排序()。

[单选题] *A 1√B N-1C ND N-27.若用冒泡排序方法对序列{10,14,26,29,41,52}从大到小排序,需进行()次比较()。

[单选题] *A 3B 10C 15√D 258.下列选项中说法正确的是()。

[单选题] *A 冒泡排序是使用循环嵌套来完成算法的√B 冒泡排序是使用单层循环来完成算法的C 无正确答案D 冒泡排序是使用三重循环来完成算法的9.8个元素{23,9,12,7,87,11,62,33}采用优化的冒泡排序需要排序()趟()。

[单选题] *A 3C 5D 610.6个元素{2,7,98,12,44,56}采用优化的冒泡排序,总共需要比较()次()。

[单选题] *A 1B 5C 9√D 1511.关于递归算法,以下说法错误的是()。

[单选题] *A 递归必须有结束条件B 递归次数太多会导致内存溢出C 递归就是指在一个方法的内部调用自身的过程D 递归可以调用无数次,只要有结束条件就可以。

数据结构与算法 试题及答案

数据结构与算法 试题及答案

数据结构与算法试题及答案数据结构与算法试题及答案在计算机科学领域,数据结构与算法是非常重要的基础知识。

数据结构是一种组织和存储数据的方式,而算法则是解决问题的方法和步骤。

掌握好数据结构与算法,有助于提高程序的运行效率和解决实际问题。

下面是一些关于数据结构与算法的试题及其答案,希望能够帮助大家更好地理解和应用这方面的知识。

试题一:什么是数据结构?请举例说明。

答案一:数据结构是一种组织和存储数据的方式。

它可以使数据的操作更加高效。

常见的数据结构有数组、链表、栈、队列、树和图等。

举个例子,数组是一种线性数据结构,可以存储一组相同类型的元素。

试题二:什么是算法?请举例说明。

答案二:算法是一种解决问题的方法和步骤。

它是一个精确的描述,用于解决特定问题。

常见的算法有排序算法、查找算法、递归算法等。

例如,冒泡排序算法是一种比较简单的排序算法,通过不断交换相邻元素的位置来达到排序的目的。

试题三:什么是时间复杂度和空间复杂度?答案三:时间复杂度和空间复杂度是衡量算法性能的两个指标。

时间复杂度是指算法执行所需要的时间,通常用大O符号表示。

空间复杂度是指算法执行所需要的额外空间,通常也用大O符号表示。

它们都是描述算法随着输入规模增大而变化的趋势。

试题四:介绍一下常见的数据结构和相应的操作。

答案四:常见的数据结构有数组、链表、栈、队列、树和图等。

- 数组是一种线性数据结构,可以随机访问元素,并且在插入和删除元素时需要移动其他元素。

- 链表是一种动态数据结构,不需要固定的内存空间,但只能通过指针进行元素的访问。

- 栈是一种后进先出(LIFO)的数据结构,只能在栈顶进行插入和删除元素的操作。

- 队列是一种先进先出(FIFO)的数据结构,只能在队尾插入元素,在队头删除元素。

- 树是一种非线性数据结构,由节点和指向子节点的边组成。

常见的树有二叉树、二叉搜索树和AVL树等。

- 图是一种复杂的数据结构,由节点和边组成,可以表示各种关系。

数据结构与算法习题及答案

数据结构与算法习题及答案

第1章绪论习题1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。

2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。

3.简述逻辑结构的四种基本关系并画出它们的关系图。

4.存储结构由哪两种基本的存储方法实现?5.选择题(1)在数据结构中,从逻辑上可以把数据结构分成()。

A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构(2)与数据元素本身的形式、内容、相对位置、个数无关的是数据的()。

A.存储结构B.存储实现C.逻辑结构D.运算实现(3)通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着()。

A.数据具有同一特点B.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致C.每个数据元素都一样D.数据元素所包含的数据项的个数要相等(4)以下说法正确的是()。

A.数据元素是数据的最小单位B.数据项是数据的基本单位C.数据结构是带有结构的各数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构(5)以下与数据的存储结构无关的术语是()。

A.顺序队列 B. 链表 C.有序表 D. 链栈(6)以下数据结构中,()是非线性数据结构A.树B.字符串C.队D.栈6.试分析下面各程序段的时间复杂度。

(1)x=90; y=100;while(y>0)if(x>100){x=x-10;y--;}else x++;(2)for (i=0; i<n; i++)for (j=0; j<m; j++)a[i][j]=0;(3)s=0;for i=0; i<n; i++)for(j=0; j<n; j++)s+=B[i][j];sum=s;(4)i=1;while(i<=n)i=i*3;(5)x=0;for(i=1; i<n; i++)for (j=1; j<=n-i; j++)x++;(6)x=n; //n>1y=0;while(x≥(y+1)* (y+1))y++;(1)O(1)(2)O(m*n)(3)O(n2)(4)O(log3n)(5)因为x++共执行了n-1+n-2+……+1= n(n-1)/2,所以执行时间为O(n2)(6)O(n)第2章线性表1.选择题(1)一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是()。

数据结构与算法测试题+参考答案

数据结构与算法测试题+参考答案

数据结构与算法测试题+参考答案一、单选题(共80题,每题1分,共80分)1、某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用什么存储方式最节省运算时间?A、仅有头指针的单循环链表B、双链表C、仅有尾指针的单循环链表D、单链表正确答案:C2、数据结构研究的内容是()。

A、数据的逻辑结构B、数据的存储结构C、建立在相应逻辑结构和存储结构上的算法D、包括以上三个方面正确答案:D3、下列关于无向连通图特征的叙述中,正确的是:所有顶点的度之和为偶数边数大于顶点个数减1至少有一个顶点的度为1A、只有1B、1和2C、1和3D、只有2正确答案:A4、下面的程序段违反了算法的()原则。

void sam(){ int n=2;while (n%2==0) n+=2;printf(“%d”,n);}A、确定性B、可行性C、有穷性D、健壮性正确答案:C5、对任意给定的含 n (n>2) 个字符的有限集 S,用二叉树表示 S 的哈夫曼编码集和定长编码集,分别得到二叉树 T1 和 T2。

下列叙述中,正确的是:A、出现频次不同的字符在 T2 中处于相同的层B、出现频次不同的字符在 T1 中处于不同的层C、T1 的高度大于 T2 的高度D、T1 与 T2 的结点数相同正确答案:A6、数据序列{ 3,2,4,9,8,11,6,20 }只能是下列哪种排序算法的两趟排序结果?A、快速排序B、选择排序C、插入排序D、冒泡排序正确答案:A7、设散列表的地址区间为[0,16],散列函数为H(Key)=Key%17。

采用线性探测法处理冲突,并将关键字序列{ 26,25,72,38,8,18,59 }依次存储到散列表中。

元素59存放在散列表中的地址是:A、11B、9C、10D、8正确答案:A8、采用递归方式对顺序表进行快速排序,下列关于递归次数的叙述中,正确的是:A、每次划分后,先处理较短的分区可以减少递归次数B、递归次数与每次划分后得到的分区处理顺序无关C、递归次数与初始数据的排列次序无关D、每次划分后,先处理较长的分区可以减少递归次数正确答案:B9、以下数据结构中,()是非线性数据结构。

数据结构与算法题库(含参考答案)

数据结构与算法题库(含参考答案)

数据结构与算法题库(含参考答案)一、单选题(共100题,每题1分,共100分)1、在一次校园活动中拍摄了很多数码照片,现需将这些照片整理到一个PowerPoint 演示文稿中,快速制作的最优操作方法是:A、创建一个 PowerPoint 相册文件。

B、创建一个 PowerPoint 演示文稿,然后批量插入图片。

C、创建一个 PowerPoint 演示文稿,然后在每页幻灯片中插入图片。

D、在文件夹中选中所有照片,然后单击鼠标右键直接发送到PowerPoint 演示文稿中。

正确答案:A2、下面对“对象”概念描述错误的是A、对象不具有封装性B、对象是属性和方法的封装体C、对象间的通信是靠消息传递D、一个对象是其对应类的实例正确答案:A3、设栈与队列初始状态为空。

首先A,B,C,D,E依次入栈,再F,G,H,I,J 依次入队;然后依次出队至队空,再依次出栈至栈空。

则输出序列为A、F,G,H,I,J,E,D,C,B,AB、E,D,C,B,A,J,I,H,G,FC、F,G,H,I,J,A,B,C,D,E,D、E,D,C,B,A,F,G,H,I,J正确答案:A4、设表的长度为 20。

则在最坏情况下,冒泡排序的比较次数为A、20B、19C、90D、190正确答案:D5、设二叉树的前序序列为 ABDEGHCFIJ,中序序列为 DBGEHACIFJ。

则后序序列为A、DGHEBIJFCAB、JIHGFEDCBAC、GHIJDEFBCAD、ABCDEFGHIJ正确答案:A6、Excel工作表B列保存了11位手机号码信息,为了保护个人隐私,需将手机号码的后 4 位均用“*”表示,以 B2 单元格为例,最优的操作方法是:A、=REPLACE(B2,7,4,"****")B、=REPLACE(B2,8,4,"****")C、=MID(B2,7,4,"****")D、=MID(B2,8,4,"****")第 10 组正确答案:B7、小金从网站上查到了最近一次全国人口普查的数据表格,他准备将这份表格中的数据引用到 Excel 中以便进一步分析,最优的操作方法是:A、通过 Excel 中的“自网站获取外部数据”功能,直接将网页上的表格导入到 Excel 工作表中。

数据结构与算法考试

数据结构与算法考试

数据结构与算法考试(答案见尾页)一、选择题1. 什么是数据结构?请列举几种常见的数据结构。

A. 数组B. 链表C. 栈D. 队列E. 图2. 算法的时间复杂度是如何表示的?请简述其计算方式。

A. 用大O符号表示B. 用大O符号表示C. 用大O符号表示D. 用大O符号表示3. 什么是递归?请举例说明递归在算法中的实现。

A. 一个函数调用自身B. 一个函数调用自身的过程C. 一个函数调用自身的过程D. 一个函数调用自身的过程4. 什么是排序算法?请列举几种常见的排序算法,并简要描述它们的特点。

A. 冒泡排序B. 选择排序C. 插入排序D. 快速排序E. 归并排序5. 什么是哈希表?请简述哈希表的原理和优点。

A. 一种数据结构,它通过将键映射到数组索引来存储和检索数据B. 一种数据结构,它通过将键映射到数组索引来存储和检索数据C. 一种数据结构,它通过将键映射到数组索引来存储和检索数据D. 一种数据结构,它通过将键映射到数组索引来存储和检索数据6. 什么是树形结构?请列举几种常见的树形结构,并简要描述它们的特点。

A. 二叉树B. 二叉树C. B树D. B+树E. 无7. 什么是图数据结构?请列举几种常见的图算法,并简要描述它们的特点。

A. 广度优先搜索B. 深度优先搜索C. 最短路径算法(Dijkstra算法)D. 最长路径算法(Floyd算法)E. 最小生成树算法(Kruskal算法,Prim算法)8. 什么是动态规划?请简述动态规划的基本思想和应用场景。

A. 一种通过分解问题为更小的子问题来求解的方法B. 一种通过分解问题为更小的子问题来求解的方法C. 一种通过分解问题为更小的子问题来求解的方法D. 一种通过分解问题为更小的子问题来求解的方法9. 请简述贪心算法的基本思想以及在哪些问题上可以应用贪心算法。

A. 一种通过局部最优解来达到全局最优解的策略B. 一种通过局部最优解来达到全局最优解的策略C. 一种通过局部最优解来达到全局最优解的策略D. 一种通过局部最优解来达到全局最优解的策略10. 什么是算法的时间复杂度和空间复杂度?请简述它们的含义以及如何计算它们。

2015年湖南省数据结构与算法考资料

2015年湖南省数据结构与算法考资料
B.p->prior = s;p->prior->next = s;s->next = p;s->prior = p->prior
A.单链表 B.静态链表 C.线性链表 D.顺序存储结构
3、在二维数组a[9][10]中:每个数组元素占用3个存储空间,从首地址SA开始按行优先
连续存放,则元素a[8][5]的起始地址是
A.SA+141 B.SA+144 C.SA+222 D.SA+255
C.top=top一1;V[mp]=x D.V[top]=x;top=top—l
37、下列选项中,其平均查找性能与基于二叉排序树的查找相当的是
A.二分查找 B.顺序查找 C.分块查找 D.索引顺序查找
38、在决定选取何种存储结构时,一般不考虑 A 。
C.s->next = p;s->prior = p->prior;p->prior = s;p->prior->next = s
D.s->next = p;s->prior = p->prior;p->prior->next = s;p->prior = s
2、需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。
A.p->next == NULL B.p == NULL
C.p->next ==head D.p == head
27、在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是 B 。
A.O(1) B.O(n) C.O(n2) D.O(nlog2n)
A 5,4,3,2,1 B 4,5,3,2,1 C 4,3,5,1,2 D 1,2,3,4,5

数据结构与算法练习题附答案

数据结构与算法练习题附答案

1、下面关于算法的说法错误的是()A、算法最终必须由计算机程序实现B、为解决某问题的算法同为该问题编写的程序含义是相同的C、算法的可行性是指指令不能有二义性D、以上几个都是错误的参考答案:D2、数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称为()A、存储结构B、逻辑结构C、链式存储结构D、顺序存储结构参考答案:C3、以下说法正确的是()(2分)A、数据元素是数据的最小单位B、数据项是数据的基本单位C、数据结构是带有结构的各数据项的集合D、数据结构是带有结构的数据元素的集合参考答案:D4、通常从正确性、易读性、健壮性、高效性等四个方面评价算法(包括程序)的质量。

以下解释错误的是()A、正确性算法应能正确地实现预定的功能(即处理要求)B、易读性算法应易于理解和阅读,以便于调试、修改和扩充C、健壮性当环境发生变化时,算法能适当地做出反应或进行处理,不会产生不需要的运行结果D、高效性即达到所需要的时间性能参考答案:C5、树形结构是数据元素之间存在一种()A、一对一关系B、多对多关系C、多对一关系D、一对多关系参考答案:D6、数据结构是指()A、数据元素的组织形式B、数据类型C、数据存储结构D、数据定义参考答案:A7、算法分析的目的是()A、找出数据结构的合理性3、研究算法中的输入和输出关系C、分析算法的效率以求改进D、分析算法的易懂性和文档性参考答案:C8、数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要()A、低B、高C、相同D、以上都不正确参考答案:B9、算法的空间复杂度是指()A、执行算法程序所占的存储空间B、算法程序中的指令条数C、算法程序的长度D、算法执行过程中所需要的存储空间参考答案:D10、数据的存储结构是指()A、数据所占的存储空间量B、数据的逻辑结构在计算机中的表示C、数据在计算机中的顺序存储方式D、存数在外存中的数据参考答案:B11、线性表是()A、一个有限序列,可以为空B、一个有限序列,不能为空C、一个无限序列,可以为空D、一个无限序列,不能为空参考答案:A12、下列叙述正确的是()A、线性表是线性结构B、栈和队列是非线性结构C、线性链表是非线性结构D、二叉树是线性结构参考答案:A13、计算机内部数据处理的基本单位是()A、数据B、数据元素C、数据项D、数据库参考答案:B14、从逻辑上可以把数据结构分为()两大类A、动态结构、静态结构B、顺序结构、链式结构C、线性结构、非线性结构D、初等结构、构造型结构参考答案:C15、算法的时间复杂度取决于()A、问题的规模B、待处理数据的初态C、A 和B参考答案:C16、以下属于逻辑结构的是()(2分)A、顺序表B、哈希表C、有序表D、单链表参考答案:C17、下列数据结构中,()是非线性数据结构A、树B、字符串C、队D、栈参考答案:A18、设语句x++的时间是单位时间,则以下语句的时间复杂度为()for(i=1;i<=n;i++)for(j=|;j<=n;j++)x++;(2分)A、O(1)B、O(n2)C、O(n)D、O(n3)参考答案:B19、算法的计算量大小称为计算的()(2分)A、效率B、复杂性C、现实性D、难度参考答案:B20、数据结构只是研究数据的逻辑结构和物理结构,这种观点()A、正确B、错误C、前半句正确,后半句错误D、前半句错误,后半句正确参考答案:B21、计算机算法指的是(),它具有输入、输出、可行性、确定性和有穷性等五个特性。

河南师范大学软件学院-2015级计算机专业《数据结构》试卷A卷

河南师范大学软件学院-2015级计算机专业《数据结构》试卷A卷

河南师范大学软件学院2016--2017学年度第一学期 2015级计算机专业期末考试《数据结构》A 卷1. 线性表若采用链式存储结构,要求内存中可用存储单元的地址( )。

A 、必须是连续的 B 、部分地址必须是连续的 C 、必须是不连续的 D 、连续或不连续都可以2. 栈中元素的进出原则是( )。

A 、先进先出 B 、后进先出 C 、栈空则进 D 、栈满则出3. 以下数据结构中,( )是非线性数据结构。

A 、树 B 、字符串 C 、队列 D 、栈4. 队列的插入操作是在( )。

A 、队尾 B 、队头 C 、队列任意位置 D 、队头元素后5. 在单链表中,指针p 指向元素为x 的结点,实现删除x 的后继的语句是( )。

A 、p=p->next; B 、p->next=p->next->next; C 、p->next=p; D 、p=p->next->next;6. 设广义表L=((a,b,c)),则L 的长度和深度分别为( )。

A 、1和1 B 、1和3 C 、1和2 D 、2和37. 一棵树转换为二叉树后,这棵二叉树的形态是( )。

A 、唯一的 B 、有多种C 、有多种,但根结点都没有左孩子D 、有多种,但根结点都没有右孩子8. 图的深度优先遍历类似于二叉树的( )。

A 、先序遍历 B 、中序遍历 C 、后序遍历 D 、层次遍历9. 在一个无向图中,所有顶点的度数之和等于图的边数的( )倍。

A 、1/2B 、1C 、2D 、410. 二叉排序树中左子树上所有结点的值均( )根结点的值。

A 、< B 、> C 、= D 、!=11. 根据使用频率为5个字符设计的哈夫曼编码不可能是( )。

A 、111,110,10,01,00B 、000,001,010,011,1C 、100,11,10,1,0D 、001,000,01,11,1012. 对线性表进行折半查找时,要求线性表必须( )。

数据结构与算法1-5单元练习题及答案分解

数据结构与算法1-5单元练习题及答案分解

单元练习1一.判断题(下列各题,正确的请在前面的括号内打√;错误的打╳)(√)(1)数据的逻辑结构与数据元素本身的内容和形式无关。

(√)(2)一个数据结构是由一个逻辑结构和这个逻辑结构上的一个基本运算集构成的整体。

(ㄨ)(3)数据元素是数据的最小单位。

(ㄨ)(4)数据的逻辑结构和数据的存储结构是相同的。

(ㄨ)(5)程序和算法原则上没有区别,所以在讨论数据结构时可以通用。

(√)(6)从逻辑关系上讲,数据结构主要分为线性结构和非线性结构两类。

(√)(7)数据的存储结构是数据的逻辑结构的存储映像。

(√)(8)数据的物理结构是指数据在计算机内实际的存储形式。

(ㄨ)(9)数据的逻辑结构是依赖于计算机的。

(√)(10)算法是对解题方法和步骤的描述。

二.填空题(1)数据有逻辑结构和存储结构两种结构。

(2)数据逻辑结构除了集合以外,还包括:线性结构、树形结构和图形结构。

(3)数据结构按逻辑结构可分为两大类,它们是线性结构和非线性结构。

(4)树形结构和图形结构合称为非线性结构。

(5)在树形结构中,除了树根结点以外,其余每个结点只有 1 个前趋结点。

(6)在图形结构中,每个结点的前趋结点数和后续结点数可以任意多个。

(7)数据的存储结构又叫物理结构。

(8)数据的存储结构形式包括:顺序存储、链式存储、索引存储和散列存储。

(9)线性结构中的元素之间存在一对一的关系。

(10)树形结构结构中的元素之间存在一对多的关系,(11)图形结构的元素之间存在多对多的关系。

(12)数据结构主要研究数据的逻辑结构、存储结构和算法(或运算)三个方面的内容。

(13)数据结构被定义为(D,R),其中D是数据的有限集合,R是D上的关系的有限集合。

(14)算法是一个有穷指令的集合。

(15)算法效率的度量可以分为事先估算法和事后统计法。

(16)一个算法的时间复杂性是算法输入规模的函数。

(17)算法的空间复杂度是指该算法所耗费的存储空间,它是该算法求解问题规模n的函数。

数据结构与算法习题含参考答案

数据结构与算法习题含参考答案

数据结构与算法习题含参考答案一、单选题(共100题,每题1分,共100分)1、要为 Word 2010 格式的论文添加索引,如果索引项已经以表格形式保存在另一个 Word文档中,最快捷的操作方法是:A、在 Word 格式论文中,逐一标记索引项,然后插入索引B、直接将以表格形式保存在另一个 Word 文档中的索引项复制到 Word 格式论文中C、在 Word 格式论文中,使用自动插入索引功能,从另外保存 Word 索引项的文件中插D、在 Word 格式论文中,使用自动标记功能批量标记索引项,然后插入索引正确答案:D2、下面不属于计算机软件构成要素的是A、文档B、程序C、数据D、开发方法正确答案:D3、JAVA 属于:A、操作系统B、办公软件C、数据库系统D、计算机语言正确答案:D4、在 PowerPoint 演示文稿中,不可以使用的对象是:A、图片B、超链接C、视频D、书签第 6 组正确答案:D5、下列叙述中正确的是A、软件过程是软件开发过程和软件维护过程B、软件过程是软件开发过程C、软件过程是把输入转化为输出的一组彼此相关的资源和活动D、软件过程是软件维护过程正确答案:C6、在 Word 中,不能作为文本转换为表格的分隔符的是:A、@B、制表符C、段落标记D、##正确答案:D7、某企业为了建设一个可供客户在互联网上浏览的网站,需要申请一个:A、密码B、门牌号C、域名D、邮编正确答案:C8、面向对象方法中,将数据和操作置于对象的统一体中的实现方式是A、隐藏第 42 组B、抽象C、结合D、封装正确答案:D9、下面属于整数类 I 实例的是A、-919B、0.919C、919E+3D、919D-2正确答案:A10、定义课程的关系模式如下:Course (C#, Cn, Cr,prC1#, prC2#)(其属性分别为课程号、课程名、学分、先修课程号 1和先修课程号 2),并且不同课程可以同名,则该关系最高是A、BCNFB、2NFC、1NFD、3NF正确答案:A11、循环队列的存储空间为 Q(1:100),初始状态为 front=rear=100。

数据结构与算法试题及

数据结构与算法试题及

数据结构与算法试题及答案参考数据结构与算法试题及答案参考一、选择题1. 数据结构是研究什么的?A. 数据的结构和组织B. 数据的格式和排列C. 数据的读取和写入D. 数据的传输和存储正确答案:A2. 在数据结构中,栈(Stack)的特点是什么?A. 先进先出B. 先进后出C. 后进先出D. 后进后出正确答案:C3. 在链表中,结点的指针指向的是什么?A. 结点本身B. 结点的前一个结点C. 结点的后一个结点D. 结点的数据域正确答案:C4. 在二叉搜索树中,左子树的值都小于根节点,右子树的值都大于根节点。

这种特性被称为什么性质?A. 有序性B. 平衡性C. 完全性D. 二叉性正确答案:A二、填空题1. 算法的复杂度可以分为时间复杂度和________复杂度。

正确答案:空间2. 实现队列数据结构可以采用两个栈的方式,称为______队列。

正确答案:双栈3. 快速排序算法的时间复杂度为______。

正确答案:O(nlogn)三、编程题1. 请编写一个函数,实现对一个数组进行冒泡排序。

正确答案:```pythondef bubble_sort(arr):for i in range(len(arr) - 1):for j in range(len(arr) - 1 - i):if arr[j] > arr[j + 1]:arr[j], arr[j + 1] = arr[j + 1], arr[j]return arr```2. 请编写一个递归函数,计算斐波那契数列的第n项。

正确答案:```pythondef fibonacci(n):if n <= 1:return nelse:return fibonacci(n - 1) + fibonacci(n - 2)```四、简答题1. 请简单描述树和图的区别。

答:树是一种特殊的图,它是一个由节点和边组成的非线性数据结构,具有层级关系,且任意两个节点之间有且仅有一条路径相连。

数据结构上机考试(含答案)

数据结构上机考试(含答案)

《数据结构》上机练习题1、设有两个有序序列,利用归并排序将它们排成有序表,并输出。

2、设有一有序序列,从键盘输入一个数,判别是否在序列中,如果在输出“YSE”;否则,将它插入到序列中使它仍然有序,并输出排序后的序列。

3、设有一有序序列,从键盘输入一个数,判别是否在序列中,如果不在,则输出“NO”,否则,将它从序列中删除它,并输出删除后的序列。

4、从键盘输入一组任意数据,建立一个有序链表,并从链头开始输出该链,使输出结果是有序的。

5、从键盘输入一组任意数据,建立一个包含所有输入数据的单向循环链表,并从链表的任意开始,依次输出该链表中的所有结点。

10、设有一个链表,(自己建立,数据从键盘输入),再从键盘输入一个数,判别是否在链表中,如果不在,则输出“NO“,否则,将它从链表中删除,并输出删除后的链表。

11、设有一个链表,(自己建立,数据从键盘输入),再从键盘输入一个数,判别是否在链表中,如果在输出“YSE”,否则,将它从插入到链头,并输出插入后的链表。

12、设有一个链表,(自己建立,数据从键盘输入),再从键盘输入一个数,判别是否在链表中,如果在输出“YSE”,否则,将它从插入到链尾,并输出插入后的链表。

13、编写栈的压栈push、弹栈pop函数,从键盘输入一组数据,逐个元素压入堆栈,然后再逐个从栈中弹出它们并输出。

14、编写栈的压栈push、弹栈pop函数,用它判别()的匹配问题。

15、按类似先序遍历结果输入一序列,建立一棵二叉树(算法6、4),输出二叉树中序遍历的结果。

16、按类似先序遍历结果输入一序列,建立一棵二叉树(算法6、4),输出二叉树先序遍历的结果。

17、按类似先序遍历结果输入一序列,建立一棵二叉树(算法6、4),输出二叉树后序遍历的结果。

18、按类似先序遍历结果输入一序列,建立一棵二叉树(算法6、4),输出二叉树的总结点数。

19、按类似先序遍历结果输入一序列,建立一棵二叉树(算法6、4),输出二叉树叶子结点数。

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

1868: 2015级软件班《数据结构与算法》实验1:线性表的应用(6学时)Description输入一个字符串,按照字符串的输入顺序创建一个线性表A。

线性表A中包含有三类字符:数字字符、字母字符、其他字符。

试写一个函数实现对线性表A的拆分,使得线性表A、B、C分别各自指向同一类字符。

要求如下:(1)在拆分时,必须使用原表A的结点空间,不能额外创建新结点。

(2)拆分后,原表A指向数字字符,且其内容的前后次序与原表中的前后次序必须一致,新的表B指向字母字符,新的表C指向其他字符。

其中要求删除B中的重复结点(如“abbcdexec”,变为“abcdex”)。

(3)判断拆分后的表A是否是中心对称的(如123321或12321都是中心对称的),若是,则输出1,否则输出0。

Input输入格式要求:输入一行字符串,可以带空格,并以‘?’做为输入结束标志,中间不能输入’?‘。

字符串长度不做限制。

如可以输入:1aabccd2e3f(!3c<2g1>?Output输出格式要求:前3行分别输出表A、B、C的内容(若某个表为空表,则相应行输出-1),第4行输出表A是否为对称的标志。

如输出:123321 (拆分后表A的内容)abcdef g (拆分后表B的内容)(!<> (拆分后表C的内容)1 (拆分后表A是中心对称的)Sampl e Input1aabccd2e3f(!3c<2g1>?Sampl e Output123321abcdefg(!<>1HINT为了方便判断线性表是否为中心对称的,可以使用双向链表结构(但不是必须的)。

1869: 2015级软件工程专业《数据结构与算法》实验2:表达式求值(9学时~12学时)Description表达式求值是计算机实现程序设计语言中的基本问题之一,也是栈应用的一个典型例子,通过本实验,对输入的一个表达式进行求值。

[实验目的]掌握栈的应用;掌握算符优先表达式求值的算法;掌握字符串处理和数值的转换。

具体要求如下:(1)表达式以字符串形式输入,并以‘#’结束。

如输入:12*(12.4+20.15)/25#(2)运算数可以是实数,运算符有+ - * / ,带括号,可以输入以下4个函数:平方sqr()、正弦sin() 、余弦cos()、四舍五入取整rd()。

函数的优先级要高于+ - * /。

(3)对输入的表达式进行计算,计算结果要求必须保留小数点后2位。

(4)能够有效判别表达式的输入格式是否有误(如缺失操作数、括号不匹配、函数名错误等),若输入格式错误,输出为“error!”。

Input表达式以字符串形式输入,并以‘#’结束,可输入的符号为:数字、小数点、“+ - * /”4个运算符、括号、以及指定的4个函数名,其他符号为非法符号,如出现则意味着输入格式错误。

下面是一些输入示例:12*(12.4+20.15)/25# ---格式正确12.001+(2*5/37# ---格式错误12*sin(30)+sqr(2.3)# ---格式正确12ab+5#---格式错误12+5-*2 # ---格式错误sin(20)+cosa(30)# ---格式错误Output若表达式输入格式正确,则输出计算结果,结果要求必须保留2位小数,如输入:12*(12.4+20.15)/25# ,输出为:15.62。

如输出为16或15.624,都为错误。

若表达式输入格式错误,则输出为:error!,如输入:15.4/(2-sin(5.12)*)+21#,输出为:error!。

Sampl e Input12*(12.4+20.15)/25#Sampl e Output15.62HINT1. 核心算法用栈结构来实现;2. 首先需对输入的表达式字符串进行解析,分离出操作数和运算符,在分离过程中,可以对非法的操作数和运算符进行判错。

若输入的操作数和运算符正确,则分别入栈;3. 函数可以看成是单目运算符,即只需一个操作数;4. 注意函数的优先级要高于其他的运算符,请正确设置运算符优先级表;5. 在出栈的过程中,可以判别括号匹配和操作数匹配的错误。

1870: 2015级软件工程专业《算法与数据结构》实验3:面向数字图像的Huffman编/译码器的设计与实现(12学时)Description“Huffman-树”不仅能对文本数据进行编码、译码,提高文本数据的传输效率,同时它也能对多媒体数据(如:数字图像、视频等)进行编码、译码,从而实现多媒体数据的压缩存储。

目前,在Web互联网上广泛使用的JPEG图像格式就采用了Huffman编码,与其他图像格式(如:BMP、TIF等)相比,同一副图像采用JPEG格式时所需的存储空间是最少的。

在这个实验中,请设计一个Huffman编/译码器,并模拟数字图像的压缩存储(编码)和解码显示(译码)的过程。

(1)构造“Huffman-树”:①读入一个大小为N*M(N为图像的高度,M为图像的宽度)的灰度图像块,该图像中的每个像素(元素)的取值范围是0~255,取值为0表示该像素是“黑色”,取值为255表示该像素是“白色”,其他取值表示介于“黑色”和“白色”之间的灰度值。

②统计读入图像块中每种灰度值出现的次数,并去除出现次数为零的灰度值,以此作为构造“Huffman-树”所需的权值。

③说明:在构造“Huffman-树”的过程中,当有多个待合并元素的权值相同时,每次选择灰度值较小的两个元素进行合并。

(2)Huffman编码(压缩存储):读入新的灰度图像块,利用已建立好的“Huffman-树”对其进行编码,将图像的宽度、高度信息和编码结果保存到文件(如:compress_image.txt)中,同时计算Huffman编码的压缩比并输出。

压缩比的计算公式如下:压缩比=原始图像所需比特数/压缩后图像所需比特数。

(3)Huffman译码(解码显示):读入压缩存储的灰度图像,利用已建立好的“Huffman-树”对其进行译码,将译码结果按照原有宽度、高度还原图像,并将还原之后的图像保存到文件(如:decoding_image.txt)中。

Input该实验有多组测试数据。

每组测试数据的第一行包含两个以空格间隔的正整数N和M,它们的取值范围都为[1, 100],分别表示图像的高度和宽度;之后的N行数据是一个灰度图像,每行含有M个以空格间隔的正整数P(0≤P≤255),P表示对应像素的灰度值。

当输入的N和M都为零时结束。

Output每组测试数据的输出占一行,输出的内容为“Huffman编码的压缩比”。

Sampl e Input8 8162 162 162 161 162 157 163 161162 162 162 161 162 157 163 161162 162 162 161 162 157 163 161162 162 162 161 162 157 163 161162 162 162 161 162 157 163 161164 164 158 155 161 159 159 160160 160 163 158 160 162 159 156159 159 155 157 158 159 156 1570 0Sampl e OutputHuffman编码的压缩比为2.72:1HINT在OJ系统中提交该实验的代码时,请将图像压缩存储结果保存到文件的代码和压缩图像解码结果保存到文件的代码都注释掉,只输出Huffman树的压缩比即可。

压缩结果和解码结果在检查程序时查看。

1871: 2015级软件工程专业《算法与数据结构》实验4:小型文本搜索引擎的实现(15学时)Description随着互联网技术的飞速发展,如何从海量数据中查找所需内容,不仅是科研人员关注的热点问题,许多IT公司也先后推出了各自的搜索引擎,如:Google、百度、Bing等。

搜索引擎的核心是如何对Web网页构建有效的索引,以便能够快速查找和匹配查询关键词,并及时地将搜索结果返回给用户。

在这个实验中,请实现一个英文单词的二叉查找树,并可根据输入的英文单词进行搜索,同时可给出单词出现的次数。

具体要求如下:(1)构造二叉查找树:①读入文本内容,过滤掉阿拉伯数字和标点符号,并将英文字母的大写形式全部转换成小写形式。

②按照英文字母表的顺序构造英文单词的二叉查找树。

当两个英文单词的首字母相同时,按第二个字母进行排序,依次类推。

③当待插入的单词已在二叉查找树中,则将该单词的出现次数增1。

(2)遍历二叉查找树:①搜索:输入一个待检索单词,在二叉查找树中进行查找,如果能找到该单词,则输出该单词及其出现次数;②实现二叉查找树的中序遍历,并将遍历结果输出到屏幕上。

(3)删除结点:给定一个停用词列表(停用词是指对搜索没有作用的词,如:of, and, a, an, the等等),将二叉查找树中的属于停用词表中的单词依次删除(不仅删除结点,还需清空记录该单词位置信息的单链表)。

Input输入有以下四种情况:当输入大写英文字母'T'时,表示下一行是文本内容,包含若干英文单词、标点符号以及阿拉伯数字,用于构建二叉查找树。

文本内容以字符‘@’结束,文本中的每个英文单词的长度不超过30个字母。

当输入大写英文字母'S'时,表示后面跟着的若干行都是停用词,每个停用词占一行,当某行是字符‘#’时,表示停用词输入完毕。

对每个停用词,都需要删除二叉查找树中的相应结点,即:每输入一个停用词,执行一次删除结点的操作。

当输入大写英文字母'V'时,表示中序遍历二叉查找树。

遍历结果中的每个单词占一行,先输出该单词,然后输出一个空格,再输出该单词出现的次数。

当输入大写英文字母'Q'时,表示后面跟着的若干行都是查询词,每个查询词占一行,当某行是字符‘#’时,表示查询词输入完毕。

对每个查询词,都需要在二叉查找树中的搜索相应结点,如果找到,则输出该单词及其出现次数,如果未找到,则输出-1。

每个查询词的查询结果占一行,先输出该单词,然后输出一个空格,再输出该单词出现的次数。

当输入大写英文字母'X'时,表示输入结束。

Output按照输入的要求输出相应结果。

提示:只有在'V'或者'Q'状态下,才有内容需要输出。

Sampl e InputTAccording to characteristics of Mongolian word formation, a method for removing inflectional suffixes from word images of the Mongolian Kanjur is proposed in this paper. @VQthe#Safteragainstallalmostalsoalthoughamonganand#Qthe#Sthetheirthentherethereforethesetheythisthosethoughthreetotwo#Qthe#VTThis paper presents a new method to recognize machine printed traditional Mongolian characters by using back propagation (BP) neural networks. @Qthe#VQmongolianocr#XSampl e Outputa 1according 1characteristics 1for 1formation 1from 1images 1in 1inflectional 1is 1kanjur 1method 1mongolian 2of 2paper 1proposed 1removing 1suffixes 1the 1this 1to 1word 2the 1the 1-1a 1according 1 characteristics 1 for 1formation 1from 1images 1in 1inflectional 1is 1kanjur 1method 1mongolian 2of 2paper 1proposed 1 removing 1suffixes 1word 2-1a 2according 1back 1bp 1by 1characteristics 1 characters 1for 1formation 1from 1images 1in 1inflectional 1is 1kanjur 1machine 1method 2mongolian 3 networks 1neural 1new 1of 2paper 2presents 1printed 1propagation 1proposed 1recognize 1removing 1suffixes 1this 1to 1traditional 1using 1word 2mongolian 3-1HINT提示1:char *到string变量可以直接用=,因为string类重载了=操作符,而且提供了以char *为源的拷贝构造函数。

相关文档
最新文档