1、数据结构是( ) 单选题 2分
2、算法分析的目的是( ) 单选题 2分
3、在线性表的下列运算中,不改变数据元素之间结构关系的运算是( ) 单选题 2分
4、若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为( ) 单选题 2分
5、设串sl=″Data Structures with Java″,s2=″it″,则子串定位函数index(s1,s2)的值为( ) 单选题 2分
6、二维数组A[8][9]按行优先顺序存储,若数组元素A[2][3]的存储地址为1087,A[4][7]的存储地址为1153,则数组元素A[6][7]的存储地址为( ) 单选题 2分
7、在按层次遍历二叉树的算法中,需要借助的辅助数据结构是( ) 单选题 2分
8、在任意一棵二叉树的前序序列和后序序列中,各叶子之间的相对次序关系( ) 单选题 2分
9、若采用孩子兄弟链表作为树的存储结构,则树的后序遍历应采用二叉树的( ) 单选题 2分
10、若用邻接矩阵表示一个有向图,则其中每一列包含的″1″的个数为( ) 单选题 2分
11、图的邻接矩阵表示法适用于表示( ) 单选题 2分
12、在对n个关键字进行直接选择排序的过程中,每一趟都要从无序区选出最小关键字元素,则在进行第i趟排序之前,无序区中关键字元素的个数为( ) 单选题 2分
13、下列排序算法中,其时间复杂度和记录的初始排列无关的是( ) 单选题 2分
14、若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找关键字b的过程中,先后进行比较的关键字依次为( ) 单选题 2分
15、若在文件中查询年龄在60岁以上的男性及年龄在55岁以上的女性的所有记录,则查询条件为( ) 单选题 2分
16、称算法的时间复杂度为O(f(n)),其含义是指算法的执行时间和( )的数量级相同。 填空题 2分
17、在一个长度为n的单链表L中,删除链表中*p的前驱结点的时间复杂度为( )。 填空题 2分
18、假设为循环队列分配的向量空间为Q[20],若队列的长度和队头指针值分别为13和17,则当前尾指针的值为( )。 填空题 2分
19、设s=″I AM A ATHLETE″,t=″GOOD″,则执行下列串操作序列之后得到的sub1为( )。 substr (sub1,s,5,2);substr(sub2,s,6,8); strcpy(t1,t); strcat(t1,sub2); strcat(sub1,t1); 填空题 2分
20、广义表的深度是指( )。 填空题 2分
21、一棵含999个结点的完全二叉树的深度为( )。 填空题 2分
22、含n个顶点的无向连通图中至少含有( )条边。 填空题 2分
23、对表长为9000的索引顺序表进行分块查找,假设每一块的长度均为15,且以顺序查找确定块,则在各记录的查找概率均相等的情况下,其查找成功的平均查找长度为( )。 填空题 2分
24、若对关键字序列(43,02,80,48,26,57,15,73,21,24,66)进行一趟增量为3的希尔排序,则得到的结果为( )。 填空题 2分
25、ISAM文件由主索引、( )、( )和主文件组成。 填空题 2分
26、某广义表的表头和表尾均为(a,(b,c)),画出该广义表的图形表示。 简答题 5分
27、已知二叉树的先序序列和中序序列分别为HDACBGFE和ADCBHFEG。(1)画出该二叉树;(2)画出与(1)求得的二叉树对应的森林。 简答题 5分
28、已知带权图的邻接表如下所示,其中边表结点的结构为:依此邻接表从顶点C出发进行深度优先遍历。(1)画出由此得到的深度优先生成树;(2)写出遍历过程中得到的从顶点C到其它各顶点的带权路径及其长度。 简答题 5分
29、从空树起,依次插入关键字37,50,42,18,48,12,56,30,23,构造一棵二叉排序树。 (1)画出该二叉排序树; (2)画出从(1)所得树中删除关键字为37的结点之后的二叉排序树。 简答题 5分
30、已知用有序链表存储整数集合的元素。阅读算法f30,并回答下列问题: (1)写出执行f30(a,b)的返回值,其中a和b分别为指向存储集合{2,4,5,7,9,12}和{2,4,5,7,9}的链表的头指针; (2)简述算法f30的功能; (3)写出算法f30的时间复杂度。 int f30(LinkList ha,LinkList hb) { //LinkList是带有头结点的单链表 //ha和hb分别为指向存储两个有序整数集合的链表的头指针 LinkList pa,pb; pa=ha->next; pb=hb->next; while(pa && pb && pa->data==pb->data) { pa=pa->next; pb=pb->next; } if(pa==NULL && pb==NULL) return 1; else return 0; } (1) 简答题 5分
31、已知稀疏矩阵采用带行表的三元组表表示,其形式说明如下: #define MaxRow 100 //稀疏矩阵的最大行数 typedef struct { int i,j,v; //行号、列号、元素值 }TriTupleNode; typedef struct{ TriTupleNode data[MaxSize]; int RowTab[MaxRow+1]; //行表 int m,n,t; //矩阵的行数、列数和非零元个数 }RTriTupleTable; 下列算法f31的功能是,以行优先的顺序输入稀疏矩阵的非零元(行号、列号、元素值),建立稀疏矩阵的带行表的三元组表存储结构。请在空缺处填入合适内容,使其成为一个完整的算法。(注:矩阵的行、列下标均从1起计) void f31(RTriTupleTable *R) { int i,k; scanf(″%d %d %d″,&R->m,&R->n,&R->t); R->RowTab[1]=0; k=1; //k指示当前输入的非零元的行号 for(i=0; ① ;i++) { scanf(″%d %d %d″, ② , ③ ,&R->data[i].v); while(kdata[i].i) { ④ ; R->RowTab[k]=i; } } } 简答题 5分
32、已知二叉树的存储结构为二叉链表,其类型定义如下: typedef struct NodeType { DataType data; struct NodeType *lchild,*rchild; }BinTNode,*BinTree;阅读算法F32,并回答下列问题:(1)对于如图所示的二叉树,画出执行算法f32的结果;(2)简述算法f32的功能。 BinTree f32(BinTree bt1) { BinTree bt2; if(bt1==NULL) bt2=NULL; else { bt2=(BinTNode *)malloc(sizeof(BinTNode)); bt2->data=bt1->data; bt2->rchild=f32(bt1->lchild); bt2->lchild=f32(bt1->rchild); } return bt2; } 简答题 5分
33、假设有向图采用邻接表表示法,其定义如下: typedef struct { VertexNode adjlist[MaxVertexNum];int n,e; //图的当前顶点数和弧数} ALGraph; //邻接表类型其中顶点表结点VertexNode结构为:边表结点EdgeNode结构为: 下列算法f33的功能是,对以邻接表表示的有向图进行拓扑排序。 (1)阅读算法f33,并在空缺处填入合适的内容,使其成为一个完整的算法; 简答题 5分
34、假设以带头结点的单链表表示有序表,单链表的类型定义如下: typedef struct node{ DataType data; struct node *next }LinkNode, *LinkList; 编写算法,从有序表A中删除所有和有序表B中元素相同的结点。 简答题 10分
6008人学习
0人学习
6008人学习
0人学习
19人学习