从概念上讲,树,森林和二叉树是三种不同的数据结构,将树,森林转化为二叉树的基本目的是什么,并指出树和二叉树的主要区别。

设L为单链表的头结点地址,其数据结点的数据都是正整数且无相同的,试设计利用直接插入的原则把该链表整理成数据递增的有序单链表的算法。

假定用两个一维数组L[N]和R[N]作为有N个结点1,2,…, N的二叉树的存储结构。L[i]和R[i]分别指示结点 i的左子女和右子女;L[i]=0(R[i]=0)表示i的左(右)子女为空。设计一个算法,由L和R建立一个一维数组T[n],使T[i]存放结点i的父亲;然后再写一个判别结点U是否为结点V的后代的算法。

设 head为一单链表的头指针,单链表的每个结点由一个整数域data和指针域next组成,整数在单链表中是无序的。编一函数,将 head链中结点分成一个奇数链和一个偶数链,分别由p,q指向,每个链中的数据按由小到大排列。程序中不得使用malloc申请空间。

使操作后的链表A中仅留下三个表中均包含的数据元素的结点,且没有值相同的结点,并释放所有无用结点。限定算法的时间复杂度为O(m+n+p),其中m、n和p分别为三个表的长度。

假设二叉排序树采用链表结构存储,设计一个算法,从大到小输出该二叉排序树中所有关键字不小于X的数据元素。

若线性表中各结点的查找概率不等,则可用如下策略提高顺序查找的效率∶若找到指定的结点,则将该结点和其前驱结点交换,使得经常被查找的结点尽量位于表的前端。试对线性表的链式存储结构写出实现上述策略的顺序查找算法(查找时必须从表头开始向后扫描)。

如果一个字符串的一个子串(其长度大于1)的各个字符均相同,则称之为等值子串。试设计一个算法,输入字符串s,以“!”作为结束标志。如果串s中不存在等值子串,则输出信息“无等值子串”,否则求出(输出)一个长度最大的等值子串。

一个仅由字母组成的字符串s,长度为n,其结构为单链表,每个结点的data字段只存放一个字母。试设计一个函数,去掉字符串中所有的X字母,并将串中的一个最小字母排列到串尾。

编程求以孩子兄弟表示法存储的森林的叶子结点数,要求描述结构。

已知树中结点数)

采用顺序存储结构存储的串,编写一个程序,将两个字符串进行比较,若s>t时返回1,s=t时返回0,s<t时返回-1。不能用strcmp库函数。

假设有两个按元素值递增有序排列的线性表A和B,均以单链表作存储结构,请设计一个算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许表中含有值相同的元素)排列的线性表C,并要求利用原表(即 A表和B表)的结点空间构造C表。

以数据集合{1,2,3,4,5,6}的不同序列为输入,构造4棵高度为4的二叉排序树。

求含有n个结点、采用顺序存储结构的完全二叉树中的序号最小的叶子结点的下标。要求写出简要步骤。

设一棵二叉树以二叉链表为存贮结构,设计一个算法将二叉树中所有结点的左,右子树相互交换。

mink和maxk是给定的两个参变量。它们的值可以和表中的元素相同,也可以不同)。

已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试设计一个高效的算法,删除表中所有值相同的多余元素(使得操作后的线性表中所有元素的值均不相同),同时释放被删结点空间。

直接在二叉排序树中查找关键码K与从中序遍历输出的有序序列中用二分查找法查找关键码K,其数据比较次数是否相同?

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

435612和13542 6,请说明为什么不能或如何才能得到。

熟悉图的存储结构,画出下面有向图的邻接矩阵、邻接表、逆邻接表、十字链表。写出邻接表表示的图从顶点A出发的深度优先遍历序列和广度优先遍历序列。

已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试设计一个高效的算法,删除表中所有值大于 mink且小于 maxk的元素(若表中存在这样的元素),同时释放被删结点空间(注意:mink和maxk是给定的两个参变量。它们的值可以和表中的元素相同,也可以不同)。

假定一个待散列存储的线性表为(32,75,29,63,48,94,25,46,18,70),散列地址空间为HT[13],若采用除留余数法构造散列函数和线性探测法处理冲突,试求出每一元素的初始散列地址和最终散列地址,画出最后得到的散列表,求出平均查找长度。

采用顺序存储结构存储的串,编写一个程序,将两个字符串进行比较,若s&gt;t时返回1,s=t时返回0,s&lt;t时返回-1。不能用strcmp库函数。

若在内存中存放一个完全二叉树,在二叉树上只进行下面两个操作: (1)寻找某个结点双亲 ; (2)寻找某个结点的子女;   请问应该用何种结构来存储该二叉树?

已知一个森林的先序序列和后序序列如下,请构造出该森林。   先序序列:ABCDEFGHIJKLMNO  后序序列:CDEBFHIJGAMLONK

已知指针 ha和 hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m和n。试设计一个算法将这两个链表连接在一起(即令其中一个表的首元结点连在另一个表的最后一个结点之后),假设指针hc指向连接后的链表的头结点,并要求算法以尽可能短的时间完成连接运算。

给定有m个整数的递增有序数组A[1..m]和有n个整数的递减有序数组B[1..n]。试写出算法:将数组A和B归并为递增有序数组C[1..m+n]。(要求:算法的时间复杂度为O(m+n)。)

试设计一个算法,在无头结点的动态单链表上实现线性表操作INSERT(L,i,b),并和在带头结点的动态单链表上实现相同操作的算法进行比较。

二叉树采用二叉链表存储   (1)编写计算整个二叉树高度的算法(二叉树的高度也叫二叉树的深度)。   (2)编写计算二叉树最大宽度的算法(二叉树的最大宽度是指二叉树所有层中结点个数的最大值)。

如果某个文件经内排序得到80个初始归并段,试问: (1)若使用多路归并执行3趟完成排序,那么应取的归并路数至少应为多少? (2)如果操作系统要求一个程序同时可用的输入/输出文件的总数不超过15个,则按多路归并至少需要几趟可以完成排序?如果限定这个趟数,可取的最低路数是多少?

设计一个算法,在中序全线索二叉树中,查找给定结点* p在中序序列中的后继(二叉树的根结点指针并未给出),并中序遍历该线索二叉树。

试构造对5个整数元素进行排序,最多只用7次比较的算法思想。

函数void insert(char*s,char*t,int pos)将字符串t插入到字符串s中,插入位置为pos。请用c语言实现该函数。假设分配给字符串s的空间足够让字符串t插入。(说明:不得使用任何库函数)

试将下列递归函数改写为非递归函数。   void test(int *sum)  { int x; scanf("%d",&amp;x); if(x==0) *sum=0 ; else {test(&amp;sum); (*sum)+=x;} printf("%5d",*sum); }

设计一个算法,统计在输入字符串中各个不同字符出现的频度。(字符串中的合法字符为'A'-'Z'这26个字母和'0'-'9'这10个数字)。

设计一个深度优先遍历图的非递归算法。(图用邻接矩阵存储)

编写递归算法,对于二叉树中每一个元素值为X的结点,删去以它为根的子树,并释放相应的空间。

设有正文AADBAACACCDACACAAD,字符集为A,B,C,D,设计一套二进制编码,使得上述正文的编码最短。

利用Floyd算法求下图中各对顶点之间的路径。

对n个顶点的无向图G,采用邻接矩阵表示,如何判别下列有关问题:   (1)图中有多少条边? (2)任意两个顶点i和j是否有边相连? (3)任意一个顶点的度是多少?

顺序查找时间为O(n),二分法查找时间为O(log2n),散列法为O(1),为什么有高效率的查找方法而低效率的方法不被放弃?

设有序表为(a,b,c,d, e,f,g,h, i,j,k,p,q),请分别画出对给定值a,g和n进行折半查找的过程。

设计一个算法,以求出给定二叉排序树中值为最大的结点。

简述顺序存储队列的假溢出的避免方法及队列满和空的条件。

设整数序列a1,a2,…,an,给出求解最大值的递归程序。

给定带权有向图G和源点v1,利用迪杰斯特拉(Dijkstra)算法求从v1到其余各顶点的最短路径。

试设计一个算法,对带头结点的单链表实现就地逆置。

已知顺序表A长度为n,试写出将监视哨设在高端的顺序查找算法。

设待排序的排序码序列为{12, 2, 16, 30, 28, 10, 16*, 20, 6, 18},试写出使用快速排序方法每趟排序后的结果。并说明做了多少次排序码比较。

输入一个由若干单词组成的文本行,每个单词之间用若干个空格隔开,统计其中的单词数。

试找出满足下列条件的二叉树:  1)先序序列与后序序列相同; 2)中序序列与后序序列相同;  3)先序序列与中序序列相同; 4)中序序列与层次序列相同;

拓扑排序的结果不是唯一的,试写出下图任意2个不同的拓扑序列。

名词解释:名词解释:栈和队列

设计一个递归算法,向以BT为树根的二叉排序树上插入值为x的结点。

设有一个二维数组A[m][n],假设A[0][0]存放位置在644,A[2][2]存放位置在676,每个元素占一个空间,问A[3][3]存放在什么位置?

编写递归算法,在二叉树中求位于先序序列中第k个位置的结点的值。

写出求以下AOE网的关键路径的过程。要求:给出每一个事件和每一个活动的最早开始时间和最晚开始时间。

一个双向栈S是在同一向量空间内实现的两个栈,它们的栈底分别设在向量空间的两端。 试为此双向栈设计初始化InitStack ( S ) 、入栈Push( S , i , x) 和出栈Pop( S , i )等算法, 其中i为0 或1, 用以表示栈号。

对给定的j(1≤j≤n ),要求在无序的记录区R[1..n]中找到按关键字自小到大排在第j个位置上的记录(即在无序集合中找到第j个最小元),试利用快速排序的划分思想编写算法实现上述的查找操作。

设待排序的排序码序列为{12, 2, 16, 30, 28, 10, 16*, 20, 6, 18},试写出使用堆排序方法每趟排序后的结果。并说明做了多少次排序码比较。

回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文。设计一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)

假设以S和X分别表示入栈和出栈操作,则对初态和终态均为空的栈操作可由S和X组成的序列表示(如SXSX)。 (1)试指出判别给定序列是否合法的一般规则。 (2)两个不同合法序列(对同一输入序列)能否得到相同的输出元素序列?如能得到,请举列说明。

利用广义表的head和tail操作写出函数表达式,把以下各题中的单元素banana从广义表中分离出来: (1) L1(apple, pear, banana, orange)  (2) L2((apple, pear), (banana, orange))   (3) L3(((apple), (pear), (bananA), (orange)))   (4) L4((((apple))), ((pear)), (bananA), orange)   (5) L5((((apple), pear), bananA), orange) (6) L6(apple, (pear, (bananA), orange))

冒泡排序算法是否稳定?为什么?

试设计一个算法,使得在O(n)的时间内重排数组,将所有取负值的排序码排在所有取正值(非负值)的排序码之前。

对含有n个互不相同元素的集合,同时找最大元和最小元至少需进行多少次比较?

假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾结点,但不设头指针,请写出相应的入队列和出队列算法。

(1)各元素的查找长度最大是多少? (2)查找长度为1、2、3、4的元素各有多少?具体是哪些元素? (3)查找第5个元素依次要比较哪些元素?

假设稀疏矩阵A采用三元组表示,编写一个函数计算其转置矩阵B,要求B也用三元组表示。

(1) L1(apple, pear, banana, orange)  (2) L2((apple, pear), (banana, orange))   (3) L3(((apple), (pear), (bananA), (orange)))   (4) L4((((apple))), ((pear)), (bananA), orange)   (5) L5((((apple), pear), bananA), orange) (6) L6(apple, (pear, (bananA), orange))

设计一个算法,将字符串s的全部字符复制到字符串t中,不能利用strcpy函数。

在起泡排序过程中,什么情况下排序码会朝向与排序相反的方向移动,试举例说明。在快速排序过程中有这种现象吗?

1)先序序列与后序序列相同; 2)中序序列与后序序列相同;  3)先序序列与中序序列相同; 4)中序序列与层次序列相同;

设S1,S2为串,请给出使S1/*S2=S2/*S1成立的所有可能的条件(/*为连接符)。

设有一个n?n的对称矩阵A,为了节约存储,可以只存对角线及对角线以上的元素,或者只存对角线或对角线以下的元素。前者称为上三角矩阵,后者称为下三角矩阵。我们把它们按行存放于一个一维数组B中,称之为对称矩阵A的压缩存储方式。试问:   (1) 存放对称矩阵A上三角部分或下三角部分的一维数组B有多少元素?   (2) 若在一维数组B中从0号位置开始存放,则对称矩阵中的任一元素aij在只存下三角部分的情形下应存于一维数组的什么下标位置?给出计算公式。

已知一棵高度为K具有n个结点的二叉树,按顺序方式存储。   (1)编写用先根遍历二叉树中每个结点的递归算法;  (2)编写将树中最大序号叶子结点的祖先结点全部打印输出的算法。

编写一个实现串通配符匹配的函数,其中的通配符只有'?',它可以和任何一个字符匹配成功。

设线性表A=(a1,a2,…,am) 和 B=(b1,b2,…,bn),试设计一个按下列规则合并A,B为线性表C的算法,即使得

有n个结点的完全二叉树存放在一维数组A[1..n]中,试据此建立一棵用二叉链表表示的二叉树,根由tree指向。

已知一棵二叉树按顺序方式存储在数组A[1..n]中。设计算法,求出下标分别为i和j的两个结点的最近的公共祖先结点的值。

已知散列表的地址区间为0~11,散列函数为H(k)=k % 11,采用线性探测法处理冲突,将关键字序列20,30,70,15,8,12,18,63,19依次存储到散列表中,试构造出该散列表,并求出在等概率情况下的平均查找长度。

奇偶交换排序是另一种交换排序。它的第一趟对序列中的所有奇数项i扫描,第二趟对序列中的所有偶数项i扫描。若A[i] > A[i+1],则交换它们。第三趟有对所有的奇数项,第四趟对所有的偶数项,…,如此反复,直到整个序列全部排好序为止。

二叉树采用二叉链表存储

将数组A和B归并为递增有序数组C[1..m+n]。(要求:算法的时间复杂度为O(m+n)。)

设有一个双向循环链表,每个结点中除有 prior,data和 next三个域外,还增设了一个访问频度域freq。在链表被起用之前,频度域freq的值均初始化为零,而每当对链表进行一次LOCATE(L,X)的操作后,被访问的结点(元素值等于X的结点)中的频度域freq的值便增1,同时调整链表中结点之间的次序,使其按访问频度非递增的次序顺序排列,以便始终保持被频繁访问的结点总是靠近表头结点。试编写符合上述要求的 LOCATE操作的算法。

已知一棵高度为K具有n个结点的二叉树,按顺序方式存储。

EXYX(E); (注:算法中可调用栈操作的基本算法。)

设计一个算法,求出指定结点在给定的二叉排序树中所在的层数。

设待排序的排序码序列为{12, 2, 16, 30, 28, 10, 16*, 20, 6, 18}, 试写出使用

试将下列递归函数改写为非递归函数。

不得使用任何库函数)

(1)元素84存放在散列表中的地址是多少?

设计一个算法,输出距离顶点v0的最短路径长度为k的所有顶点,其中路径长度指的是弧或边的数目。

假定数组A[n]的n个元素中有多个零元素,编写算法将A中所有的非零元素依次移到A的前端。

假设循环队列中只设rear和length来分别指示队尾元素的位置和队中元素的个数,试给出判别此循环队列的队满条件,并写出相应的入队和出队算法,要求出队时需返回队头元素。

若S和T是用结点大小为1的单链表存储的两个串,试设计一个算法找出S中第一个不在T中出现的字符。

设s、t为两个字符串,分别放在两个一维数组中,m、n分别为其长度,判断t是否为s的子串。如果是,输出子串所在位置(第一个字符),否则输出0。

画出1个顶点、2个顶点、3个顶点、4个顶点和5个顶点的无向完全图。并说明在n个顶点的无向完全图中,边的条数为n(n-1)/2。

设散列函数为h(key)=key%101,解决冲突的方法为线性探测,表中用-1表示空单元。

一棵二叉树的先序、中序、后序序列如下,其中一部分未标出,请构造出该二叉树。

设散列函数为H(k)=k % 11,采用拉链法处理冲突,将上例中关键字序列依次存储到散列表中,并求出在等概率情况下的平均查找长度。

试证明,同一棵二叉树的所有叶子结点,在先序序列、中序序列以及后序序列中都按相同的相对位置出现(即先后顺序相同),例如先序abc,后序bca,中序bac。

已知一个森林的先序序列和后序序列如下,请构造出该森林。

请分别用Prim算法和Kruskal算法构造以下网络的最小生成树,并求出该树的代价。

设计一个算法,删除无向图的邻接矩阵中给定顶点。

设计一个算法,用深度优先遍历法对AOV网进行拓扑排序,检测其中是否存在环。

有递增排序的顺序线性表A[n],写出利用二分查找算法查找元素K的递归算法。若找到则给出其位置序号,若找不到则其位置号为0。

编写一个算法,利用栈的基本运算将指定栈中的内容进行逆转。

将一半字符入栈)

用标志位方式设计出在循环队列中进行插入和删除运算的算法。

删去那些既在B表中出现又在C表中出现的元素。试对顺序表编写实现上述操作的算法,并分析你的算法的时间复杂度(注意:题中没有特别指明同一表中的元素值各不相同)。

写出快速排序的非递归算法。

设计一个算法,实现双向冒泡排序。

按层序输出广义表A中的所有元素。

将哨兵放在R[n]中,被排序的记录放在R[0..n-1]中,重新编写直接插入排序算法。

在算法中,不要破坏原表A和B)。

求广义表深度的递归算法。

设计一个算法,求出分别用邻接矩阵和邻接表表示的有向图中顶点的最大出度值。

试编写利用二分查找法确定记录的所在块的分块查找算法。

已知某有向图用邻接表表示,设计一个算法,求出给定两顶点间的简单路径。

已知下面是某无向图的邻接表,画出该无向图,并分别给出从A出发的深度优先搜索生成树和广度优先搜索生成树。

假设以S和X分别表示入栈和出栈操作,则对初态和终态均为空的栈操作可由S和X组成的序列表示(如SXSX)。

已知一棵二叉树的中序序列和后序序列分别为GLDHBEIACJFK和LGHDIEBJKFCA

假设一棵二叉树的层次次序(按层次递增顺序排列,同一层次自左向右)为ABECFGDHI,中序序列为BCDAFEHIG。请画出该二叉树,并将其转换为对应的森林。

名词解释:栈和队列

空格串与空串。

什么是内排序? 什么是外排序? 什么排序方法是稳定的? 什么排序方法是不稳定的?

设有一有向图为G=(V,E)。其中,V={ v1, v2, v3, v4, v5},E={, , , , , , },请画出该有向图并判断是否是强连通图。

设有序表为(a, b, c, d, e, f, g, h, i, j, k, p, q),请分别画出对给定值a, g和n进行折半查找的过程。

为什么有序的单链表不能进行折半查找?

给出每一个事件和每一个活动的最早开始时间和最晚开始时间。

查找成功,即表中有关键字等于给定值K的记录。

一棵非空二叉树其先序序列和后序序列正好相反,画出二叉树的形状。

数据结构包括哪三个方面?

简述数据库物理结构设计的任务和内容。

试设计一个图书信息数据表的结构,并设计一个表单实现对该数据表记录的显示、输入、插入、删除和修改功能。

设计一个原材料仓库管理中存储原材料的数据表的基本结构,并设计对该数据表进行检索的窗口及其检索的基本算法。

试设计一个学生学籍数据表的结构,并设计一个表单实现对该数据表记录的显示、输入、插入、删除和修改功能。

正确

A、 有的系统只有输入和输出两部分,没有主加工

A、 判断表考虑最周全

A、 人工方式

题目:试构造对5个整数元素进行排序,最多只用7次比较的算法思想。

题目:已知散列表的地址区间为0~11,散列函数为H(k)=k % 11,采用线性探测法处理冲突,将关键字序列20,30,70,15,8,12,18,63,19依次存储到散列表中,试构造出该散列表,并求出在等概率情况下的平均查找长度。

题目:简述顺序存储队列的假溢出的避免方法及队列满和空的条件。

题目:如果输入序列为123456,试问能否通过栈结构得到以下两个序列:435612和13542 6,请说明为什么不能或如何才能得到。

题目:设有一个n´n的对称矩阵A,为了节约存储,可以只存对角线及对角线以上的元素,或者只存对角线或对角线以下的元素。前者称为上三角矩阵,后者称为下三角矩阵。我们把它们按行存放于一个一维数组B中,称之为对称矩阵A的压缩存储方式。试问:   

(1) 存放对称矩阵A上三角部分或下三角部分的一维数组B有多少元素?   

(2) 若在一维数组B中从0号位置开始存放,则对称矩阵中的任一元素aij在只存下三角部分的情形下应存于一维数组的什么下标位置?给出计算公式。

题目:已知一棵二叉树的中序序列和后序序列分别为GLDHBEIACJFK和LGHDIEBJKFCA  

(1)给出这棵二叉树;(2)转换为对应的森林。

题目:已知下列字符A、B、C、D、E、F、G的权值分别为3、12、7、4、2、8,11,试填写出其对应哈夫曼树HT的存储结构的初态和终态。

题目:在起泡排序过程中,什么情况下排序码会朝向与排序相反的方向移动,试举例说明。在快速排序过程中有这种现象吗?

题目:设待排序的排序码序列为{12, 2, 16, 30, 28, 10, 16*, 20, 6, 18}, 试写出使用

基数排序方法每趟排序后的结果。并说明做了多少次排序码比较。

题目:构造有12个元素的二分查找的判定树,并求解下列问题: 

(1)各元素的查找长度最大是多少? 

(2)查找长度为1、2、3、4的元素各有多少?具体是哪些元素? 

(3)查找第5个元素依次要比较哪些元素?

题目:以数据集合{1,2,3,4,5,6}的不同序列为输入,构造4棵高度为4的二叉排序树。

题目:试找出满足下列条件的二叉树:  

1)先序序列与后序序列相同; 2)中序序列与后序序列相同;  

3)先序序列与中序序列相同; 4)中序序列与层次序列相同;

题目:若在内存中存放一个完全二叉树,在二叉树上只进行下面两个操作: 

(1)寻找某个结点双亲 ; (2)寻找某个结点的子女;   

请问应该用何种结构来存储该二叉树?

题目:对一个具有7个记录的文件进行快速排序,请问: 

(1)在最好情况下需进行多少次比较?并给出一个最好情况初始排列的实例。  

(2)在最坏情况下需进行多少次比较?为什么?并给出此时的实例。

题目:什么是内排序? 什么是外排序? 什么排序方法是稳定的? 什么排序方法是不稳定的?

题目:求含有n个结点、采用顺序存储结构的完全二叉树中的序号最小的叶子结点的下标。要求写出简要步骤。

题目:对n个顶点的无向图G,采用邻接矩阵表示,如何判别下列有关问题:   

(1)图中有多少条边? 

(2)任意两个顶点i和j是否有边相连? 

(3)任意一个顶点的度是多少?

题目:设S1,S2为串,请给出使S1/*S2=S2/*S1成立的所有可能的条件(/*为连接符)。

题目:一棵非空二叉树其先序序列和后序序列正好相反,画出二叉树的形状。

题目:画出1个顶点、2个顶点、3个顶点、4个顶点和5个顶点的无向完全图。并说明在n个顶点的无向完全图中,边的条数为n(n-1)/2。

题目:假设一棵二叉树的层次次序(按层次递增顺序排列,同一层次自左向右)为ABECFGDHI,中序序列为BCDAFEHIG。请画出该二叉树,并将其转换为对应的森林。

题目:散列表的地址区间为0~15,散列函数为H(key)=key%13。设有一组关键字{19,01,23,14,55,20,84}, 采用线性探测法解决冲突,依次存放在散列表中。问:(1)元素84存放在散列表中的地址是多少?   

(2)搜索元素84需要的比较次数是多少?

题目:试证明,同一棵二叉树的所有叶子结点,在先序序列、中序序列以及后序序列中都按相同的相对位置出现(即先后顺序相同),例如先序abc,后序bca,中序bac。

题目:设有一个二维数组A[m][n],假设A[0][0]存放位置在644,A[2][2]存放位置在676,每个元素占一个空间,问A[3][3]存放在什么位置?

题目:从概念上讲,树,森林和二叉树是三种不同的数据结构,将树,森林转化为二叉树的基本目的是什么,并指出树和二叉树的主要区别。

题目:设散列函数为H(k)=k % 11,采用拉链法处理冲突,将上例中关键字序列依次存储到散列表中,并求出在等概率情况下的平均查找长度。

题目:写出求以下AOE网的关键路径的过程。要求:给出每一个事件和每一个活动的最早开始时间和最晚开始时间。

题目:利用广义表的head和tail操作写出函数表达式,把以下各题中的单元素banana从广义表中分离出来: 

(1) L1(apple, pear, banana, orange)  

(2) L2((apple, pear), (banana, orange))   

(3) L3(((apple), (pear), (bananA), (orange)))   

(4) L4((((apple))), ((pear)), (bananA), orange)   

(5) L5((((apple), pear), bananA), orange) 

(6) L6(apple, (pear, (bananA), orange))

题目:为什么有序的单链表不能进行折半查找?

题目:名词解释:栈和队列

题目:对含有n个互不相同元素的集合,同时找最大元和最小元至少需进行多少次比较?

题目:设有序表为(a, b, c, d, e, f, g, h, i, j, k, p, q),请分别画出对给定值a, g和n进行折半查找的过程。

题目:拓扑排序的结果不是唯一的,试写出下图任意2个不同的拓扑序列。

起泡排序方法每趟排序后的结果。并说明做了多少次排序码比较。

题目:假定一个待散列存储的线性表为(32,75,29,63,48,94,25,46,18,70),散列地址空间为HT[13],若采用除留余数法构造散列函数和线性探测法处理冲突,试求出每一元素的初始散列地址和最终散列地址,画出最后得到的散列表,求出平均查找长度。

题目:若以1、2、3、4作为双端队列的输入序列,试分别求出以下条件的输出序列:  

(1)能由输入受限的双端队列得到,但不能由输出受限的双端队列得到的输出序列;   

(2)能由输出受限的双端队列得到,但不能由输入受限的双端队列得到的输出序列;   

(3)既不能由输入受限双端队列得到,也不能由输出受限双端队列得到的输出序列。

题目:描述以下概念的区别:空格串与空串。

题目:直接在二叉排序树中查找关键码K与从中序遍历输出的有序序列中用二分查找法查找关键码K,其数据比较次数是否相同?

题目:设有正文AADBAACACCDACACAAD,字符集为A,B,C,D,设计一套二进制编码,使得上述正文的编码最短。

题目:顺序查找时间为O(n),二分法查找时间为O(log2n),散列法为O(1),为什么有高效率的查找方法而低效率的方法不被放弃?

题目:已知一个森林的先序序列和后序序列如下,请构造出该森林。   

先序序列:ABCDEFGHIJKLMNO  

后序序列:CDEBFHIJGAMLONK

题目:冒泡排序算法是否稳定?为什么?

直接插入排序方法每趟排序后的结果。并说明做了多少次排序码比较。

题目:一棵二叉树的先序、中序、后序序列如下,其中一部分未标出,请构造出该二叉树。  

先序序列 :_ _ C D E _ G H I _ K    

中序序列 :C B _ _ F A _ J K I G 

后序序列 :_ E F D B _ J I H _ A

堆排序方法每趟排序后的结果。并说明做了多少次排序码比较。

题目:查找成功,即表中有关键字等于给定值K的记录。

快速排序方法每趟排序后的结果。并说明做了多少次排序码比较。

题目:设有一有向图为G=(V,E)。其中,V={ v1, v2, v3, v4, v5},E={&lt;v2, v1&gt;, &lt;v3, v2&gt;, &lt;v4, v3&gt;, &lt;v4, v2&gt;, &lt;v1, v4&gt;, &lt;v4, v5&gt;, &lt;v5, v1&gt;},请画出该有向图并判断是否是强连通图。

题目:假设以S和X分别表示入栈和出栈操作,则对初态和终态均为空的栈操作可由S和X组成的序列表示(如SXSX)。 

(1)试指出判别给定序列是否合法的一般规则。 

(2)两个不同合法序列(对同一输入序列)能否得到相同的输出元素序列?如能得到,请举列说明。

希尔排序(增量为5,2,1)方法每趟排序后的结果。并说明做了多少次排序码比较。

题目:如果某个文件经内排序得到80个初始归并段,试问: 

(1)若使用多路归并执行3趟完成排序,那么应取的归并路数至少应为多少? 

(2)如果操作系统要求一个程序同时可用的输入/输出文件的总数不超过15个,则按多路归并至少需要几趟可以完成排序?如果限定这个趟数,可取的最低路数是多少?

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

题目:已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试设计一个高效的算法,删除表中所有值相同的多余元素(使得操作后的线性表中所有元素的值均不相同),同时释放被删结点空间。

题目:试设计一个算法,使得在O(n)的时间内重排数组,将所有取负值的排序码排在所有取正值(非负值)的排序码之前。

题目:试将下列递归函数改写为非递归函数。   

void test(int *sum)  { int x; scanf(&quot;%d&quot;,&amp;x); if(x==0) *sum=0 ;  else {test(&amp;sum); (*sum)+=x;} printf(&quot;%5d&quot;,*sum); }

题目:已知A,B和C为三个递增有序的线性表,现要求对A表作如下操作:删去那些既在B表中出现又在C表中出现的元素。试对顺序表编写实现上述操作的算法,并分析你的算法的时间复杂度(注意:题中没有特别指明同一表中的元素值各不相同)。

题目:按层序输出广义表A中的所有元素。

题目:设线性表A=(a1,a2,…,am) 和 B=(b1,b2,…,bn),试设计一个按下列规则合并A,B为线性表C的算法,即使得 

C=(a1,b1,…,am,bm,bm+1 ,…,bn )当 m≤n时;   

或者  

C=(a1,b1,…,an,bn,an+1 ,…,am )当m>n时。   

线性表A,B和C均以单链表作存储结构,且C表利用A表和B表中的结点空间构成。注意:单链表的长度值m和n均未显式存储。

题目:设计一个算法,统计在输入字符串中各个不同字符出现的频度。(字符串中的合法字符为'A'-'Z'这26个字母和'0'-'9'这10个数字)。

题目:函数void insert(char*s,char*t,int pos)将字符串t插入到字符串s中,插入位置为pos。请用c语言实现该函数。假设分配给字符串s的空间足够让字符串t插入。(说明:不得使用任何库函数)

题目:试设计一个算法,对带头结点的单链表实现就地逆置。

题目:求广义表深度的递归算法。

题目:回文是指正读反读均相同的字符序列,如&quot;abba&quot;和&quot;abdba&quot;均是回文,但&quot;good&quot;不是回文。设计一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)

题目:设有一个双向循环链表,每个结点中除有 prior,data和 next三个域外,还增设了一个访问频度域freq。在链表被起用之前,频度域freq的值均初始化为零,而每当对链表进行一次LOCATE(L,X)的操作后,被访问的结点(元素值等于X的结点)中的频度域freq的值便增1,同时调整链表中结点之间的次序,使其按访问频度非递增的次序顺序排列,以便始终保持被频繁访问的结点总是靠近表头结点。试编写符合上述要求的 LOCATE操作的算法。

题目:假设二叉排序树采用链表结构存储,设计一个算法,从大到小输出该二叉排序树中所有关键字不小于X的数据元素。

题目:如果一个字符串的一个子串(其长度大于1)的各个字符均相同,则称之为等值子串。试设计一个算法,输入字符串s,以“!”作为结束标志。如果串s中不存在等值子串,则输出信息“无等值子串”,否则求出(输出)一个长度最大的等值子串。

题目:设计一个算法,以求出给定二叉排序树中值为最大的结点。

题目:一个双向栈S是在同一向量空间内实现的两个栈,它们的栈底分别设在向量空间的两端。 试为此双向栈设计初始化InitStack ( S ) 、入栈Push( S , i , x) 和出栈Pop( S , i )等算法, 其中i为0 或1, 用以表示栈号。

题目:已知某有向图用邻接表表示,设计一个算法,求出给定两顶点间的简单路径。

题目:设一棵二叉树以二叉链表为存贮结构,设计一个算法将二叉树中所有结点的左,右子树相互交换。

题目:二叉树采用二叉链表存储   

(1)编写计算整个二叉树高度的算法(二叉树的高度也叫二叉树的深度)。   

(2)编写计算二叉树最大宽度的算法(二叉树的最大宽度是指二叉树所有层中结点个数的最大值)。

题目:编程求以孩子兄弟表示法存储的森林的叶子结点数,要求描述结构。

题目:设计一个递归算法,向以BT为树根的二叉排序树上插入值为x的结点。

题目:若S和T是用结点大小为1的单链表存储的两个串,试设计一个算法找出S中第一个不在T中出现的字符。

题目:设L为单链表的头结点地址,其数据结点的数据都是正整数且无相同的,试设计利用直接插入的原则把该链表整理成数据递增的有序单链表的算法。

题目:对给定的j(1≤j≤n ),要求在无序的记录区R[1..n]中找到按关键字自小到大排在第j个位置上的记录(即在无序集合中找到第j个最小元),试利用快速排序的划分思想编写算法实现上述的查找操作。

题目:假设稀疏矩阵A采用三元组表示,编写一个函数计算其转置矩阵B,要求B也用三元组表示。

题目:试编写利用二分查找法确定记录的所在块的分块查找算法。

题目:设计一个算法,输出距离顶点v0的最短路径长度为k的所有顶点,其中路径长度指的是弧或边的数目。

题目:设计一个深度优先遍历图的非递归算法。(图用邻接矩阵存储)

题目:有n个结点的完全二叉树存放在一维数组A[1..n]中,试据此建立一棵用二叉链表表示的二叉树,根由tree指向。

题目:假定用两个一维数组L[N]和R[N]作为有N个结点1,2,…, N的二叉树的存储结构。L[i]和R[i]分别指示结点 i的左子女和右子女;L[i]=0(R[i]=0)表示i的左(右)子女为空。设计一个算法,由L和R建立一个一维数组T[n],使T[i]存放结点i的父亲;然后再写一个判别结点U是否为结点V的后代的算法。

题目:给定有m个整数的递增有序数组A[1..m]和有n个整数的递减有序数组B[1..n]。试写出算法:将数组A和B归并为递增有序数组C[1..m+n]。(要求:算法的时间复杂度为O(m+n)。)

题目:编写一个实现串通配符匹配的函数,其中的通配符只有'?',它可以和任何一个字符匹配成功。

题目:已知三个带头结点的线性链表A、B和C中的结点均依元素值自小至大非递减排列(可能存在两个以上值相同的结点),编写算法对A表进行如下操作:使操作后的链表A中仅留下三个表中均包含的数据元素的结点,且没有值相同的结点,并释放所有无用结点。限定算法的时间复杂度为O(m+n+p),其中m、n和p分别为三个表的长度。

题目:已知一棵高度为K具有n个结点的二叉树,按顺序方式存储。   

(1)编写用先根遍历二叉树中每个结点的递归算法;  

(2)编写将树中最大序号叶子结点的祖先结点全部打印输出的算法。

题目:有递增排序的顺序线性表A[n],写出利用二分查找算法查找元素K的递归算法。若找到则给出其位置序号,若找不到则其位置号为0。

题目:设计一个算法,删除无向图的邻接矩阵中给定顶点。

题目:奇偶交换排序是另一种交换排序。它的第一趟对序列中的所有奇数项i扫描,第二趟对序列中的所有偶数项i扫描。若A[i] &gt; A[i+1],则交换它们。第三趟有对所有的奇数项,第四趟对所有的偶数项,…,如此反复,直到整个序列全部排好序为止。

题目:已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试设计一个高效的算法,删除表中所有值大于 mink且小于 maxk的元素(若表中存在这样的元素),同时释放被删结点空间(注意:mink和maxk是给定的两个参变量。它们的值可以和表中的元素相同,也可以不同)。

题目:假设有两个按元素值递增有序排列的线性表A和B,均以单链表作存储结构,请设计一个算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许表中含有值相同的元素)排列的线性表C,并要求利用原表(即 A表和B表)的结点空间构造C表。

题目:设 A=(a1,a2,…,am) 和 B=(b1,b2,…,bn)均为顺序表,试设计一个比较A,B大小的算法(请注意:在算法中,不要破坏原表A和B)。

题目:设计一个算法,在中序全线索二叉树中,查找给定结点* p在中序序列中的后继(二叉树的根结点指针并未给出),并中序遍历该线索二叉树。

题目:设计一个算法,求出分别用邻接矩阵和邻接表表示的有向图中顶点的最大出度值。

题目:假设以双亲表示法作树的存储结构,写出双亲表示的类型说明,并编写求给定的树的深度的算法。(注:已知树中结点数)

题目:试设计一个算法,在无头结点的动态单链表上实现线性表操作INSERT(L,i,b),并和在带头结点的动态单链表上实现相同操作的算法进行比较。

题目:一个仅由字母组成的字符串s,长度为n,其结构为单链表,每个结点的data字段只存放一个字母。试设计一个函数,去掉字符串中所有的X字母,并将串中的一个最小字母排列到串尾。

题目:假定数组A[n]的n个元素中有多个零元素,编写算法将A中所有的非零元素依次移到A的前端。

题目:要求二叉树按二叉链表形式存储:   

(1)写一个建立二叉树的算法。  

(2)写一个判别给定的二叉树是否是完全二叉树的算法。

题目:假设散列函数为H(k)=k % 11,采用链地址法处理冲突。设计算法:  

(1)输入一组关键字(09,31,26,19,01,13,02,11,27,16,05,21)构造散列表。  

(2)查找值为x的元素。若查找成功,返回其所在结点的指针,否则返回NULL。

题目:已知指针 ha和 hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m和n。试设计一个算法将这两个链表连接在一起(即令其中一个表的首元结点连在另一个表的最后一个结点之后),假设指针hc指向连接后的链表的头结点,并要求算法以尽可能短的时间完成连接运算。

题目:设计一个算法,用深度优先遍历法对AOV网进行拓扑排序,检测其中是否存在环。

题目:假设循环队列中只设rear和length来分别指示队尾元素的位置和队中元素的个数,试给出判别此循环队列的队满条件,并写出相应的入队和出队算法,要求出队时需返回队头元素。

题目:采用顺序存储结构存储的串,编写一个程序,将两个字符串进行比较,若s&gt;t时返回1,s=t时返回0,s&lt;t时返回-1。不能用strcmp库函数。

题目:编写递归算法,对于二叉树中每一个元素值为X的结点,删去以它为根的子树,并释放相应的空间。

题目:设 head为一单链表的头指针,单链表的每个结点由一个整数域data和指针域next组成,整数在单链表中是无序的。编一函数,将 head链中结点分成一个奇数链和一个偶数链,分别由p,q指向,每个链中的数据按由小到大排列。程序中不得使用malloc申请空间。

题目:设计一个算法,将字符串s的全部字符复制到字符串t中,不能利用strcpy函数。

题目:输入一个由若干单词组成的文本行,每个单词之间用若干个空格隔开,统计其中的单词数。

题目:编写一个算法,利用栈的基本运算将指定栈中的内容进行逆转。

题目:将哨兵放在R[n]中,被排序的记录放在R[0..n-1]中,重新编写直接插入排序算法。

题目:1.设表达式以字符形式已存入数组E[n]中,‘#’为表达式的结束符,试写出判断表达式中括号(‘(’和‘)’)是否配对的C语言描述算法:EXYX(E); (注:算法中可调用栈操作的基本算法。)

题目:用标志位方式设计出在循环队列中进行插入和删除运算的算法。

题目:编写递归算法,在二叉树中求位于先序序列中第k个位置的结点的值。

题目:设s、t为两个字符串,分别放在两个一维数组中,m、n分别为其长度,判断t是否为s的子串。如果是,输出子串所在位置(第一个字符),否则输出0。

题目:设整数序列a1,a2,…,an,给出求解最大值的递归程序。

题目:写出快速排序的非递归算法。

题目:已知顺序表A长度为n,试写出将监视哨设在高端的顺序查找算法。

题目:设计一个算法,实现双向冒泡排序。

题目:已知一棵二叉树按顺序方式存储在数组A[1..n]中。设计算法,求出下标分别为i和j的两个结点的最近的公共祖先结点的值。

题目:假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾结点,但不设头指针,请写出相应的入队列和出队列算法。

题目:若线性表中各结点的查找概率不等,则可用如下策略提高顺序查找的效率∶若找到指定的结点,则将该结点和其前驱结点交换,使得经常被查找的结点尽量位于表的前端。试对线性表的链式存储结构写出实现上述策略的顺序查找算法(查找时必须从表头开始向后扫描)。

题目:设计一个算法,求出指定结点在给定的二叉排序树中所在的层数。

题目:设有一个n′n的对称矩阵A,为了节约存储,可以只存对角线及对角线以上的元素,或者只存对角线或对角线以下的元素。前者称为上三角矩阵,后者称为下三角矩阵。我们把它们按行存放于一个一维数组B中,称之为对称矩阵A的压缩存储方式。试问:   

《数据结构(信息管理)》相关推荐

  1. ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  2. ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  3. 信息学奥赛真题解析(玩具谜题)

    玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...

  4. 信息学奥赛之初赛 第1轮 讲解(01-08课)

    信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...

  5. 信息学奥赛一本通习题答案(五)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  6. 信息学奥赛一本通习题答案(三)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  7. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

  8. 信息学奥赛一本通题目代码(非题库)

    为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...

  9. 信息学奥赛一本通(C++版) 刷题 记录

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...

  10. 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离

    首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...

最新文章

  1. 谷歌和Facebook正在吸走欧洲的人才
  2. Emacs之slime环境配置
  3. ubuntu 10.04 安装 pyquery
  4. webApp之meta标签
  5. 计算几何-经典算法-凸包
  6. PHP多进程之pcntl扩展的使用详解
  7. c++获取时间戳_时间简史
  8. [区块链] 密码学——Merkle 树
  9. linux 驱动读写文件,Linux下读写寄存器
  10. ★LeetCode(108)——将有序数组转换为二叉搜索树(JavaScript)
  11. docker集群——介绍Mesos+Zookeeper+Marathon的Docker管理平台
  12. strcmp函数的实现方式
  13. 芯片解密什么是物联网芯片,与普通芯片有什么不同?
  14. PostGIS教程十一:空间索引
  15. 【面向对象学习笔记day05】面向对象封装案例2+士兵突击+开发枪类+开发士兵类+身份运算符+is 与 == 区别
  16. 计算机系单身率排行榜,中国高校单身率排行榜,第一名实至名归!
  17. Lyapunov直接法与间接法
  18. 老男孩Docker基础入门培训视频Docker核心原理解(完整版)
  19. 机器学习水果识别——python+opencv实现物体特征提取
  20. java的入口函数_java中有几种入口函数

热门文章

  1. 前端小蜜蜂:了解 Vue 的 Compsition API
  2. 滴滴打车的笔试题【用例设计题目】【杭州多测师】【杭州多测师_王sir】
  3. 游戏环境修复_三千余名玩家因为bug被封号三年?游戏环境不能只靠官方维护
  4. 怎么解决UG编程3D线加工还是曲面加工流道经常会过切
  5. java OpenCV实现扫描仪图片倾斜矫正
  6. 如何设置控制台的文字颜色和背景颜色
  7. php字体闪烁,怎么用css和js让页面文字出现不停闪烁的效果?(示例) - blink
  8. 前端线上问题如何调试
  9. 次世代主机游戏战争打响,5G时代下索尼微软任天堂该何去何从?
  10. vue中的富文本框的使用(vue-quill-editor)