数据结构模拟题1

数据结构模拟题1
数据结构模拟题1

数据结构试题1

总共:15题,共100.0分

一、单选(共8小题,24.0分)

1.向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动______个元素。(3分)

A.8

B.63.5

C.63

D.7

2.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,则A[4][5]在()位置,(10)表明用10进数表示。(3分)

A.672(10)

B.626(10)

C.709(10)

D.724(10)

3.一个有序顺序表有255个对象,采用顺序搜索法查表,平均搜索长度为________。(3分)

A.128

B.127

C.126

D.255

4.含5个结点(元素值均不相同)的二叉顺序搜索法查表,平均搜索长度为_______。(3分)

A.54

B.42

C.36

D.65

5.在分析折半搜索的性能时常加入失败结点,即外结点,从而形成扩充的二叉树。若设失败结点i所在层次为I i,那么搜索失败到达失败所做的数据比较次数是__________。(3.0分)A.I i+1 B.I i+2

C.I i-1

D.I i

6.设有一个含200个表项的散列表,用线性探查法解决冲突,按关键码查询时找到一个表项的平均控查次数不超过1.5,则歼列存储空间应容纳________个表项。(设搜索成功的平均搜索长度为s m=(1+1/(1-α))/2,其中α为装填因子)

A.400

B.526

C.624

D.676

7.n个顶点的连通图至少有______条边。(3.0分)

A.n-1

B.n

C.n+1

D.0

8.一个二叉树按顺序方式存储在一个一维数组中,如图

01234567891011121314

二、简答(共4小题,46.0分)

1.如右所示的连通图,请画出:

(1)以顶点①为根的深度优先生成树;

(2)如果有关节点,请找出所有的关节点。

2.设有13个初始归并段,其长度分别为28,16,37,42,5,9,13,14,20,17,30,12,18。试画出4路归并时的最佳归并树,并计算它路径长度WPL。(12.0分)

3.设散列表HT[0..12],,即表的大小为m=13。采用双散列法解决冲突。散列函数和再散列函数分别为:H0(Key)=Key%13 注:%是求余数运算(=mod)

H i=(H i-1+Rev(key+1)%11+1)%13

i=1,2,3,...m-1

其中,函数REV(x)表示颠倒10进制数x的各位,如REV(37)=37,REV(7)=7等。若插入的关键码序列为{2,8,31,20,19,53,27},画出插入这8个关键码后的散列表。

0123456789101112

4.已知一棵二叉树如左,请分别写出按前序、中序、后序和层次遍历

时得到的结点序列。

三、计算(共1小题,10.0分)

1.有一种简单的排序算法,叫做计数排序(count sorting)。这种排

序算法对一个待排序的表(用数组表示)进行排序,并将排序结果放

入一个新的表中。必须注意的是,表中所有待排序的关键码互不相同。计数排序算法针对表中的第个记录,投其所好待排序的表一趟,统计表中多少个记录的关键码比该记录的关键小。假设针对某一个记录,统计出的计数值为C,那么,这个记录在新的有序表中的合适的存放位置即:

(1)给出适用于计数排序的数据表定义;(4分)

(2) 使用C++语言编写实现计数排序的算法;(4分)

(3)对于有n个记录的表,关键码比较次数是多少?(2分)

四、其它(共2小题,20.0分)

1.int unknown (BinTreeNode * t) {

//指针t是二叉树的根指针

if (t==NULL) return 0;

elseif (t→leftChild)==NULL&&t→rightChild==NULL) return 1;

else return unknown (t→leftChilk)+unknown(t→rightChild);

}(10.0分)

2.下面给出的是一个在二叉树中查找值为x的结点,并打印该结点所有祖先结点的算法。在此算法中,假设值为X的结点不多于一个。此算法排序的非递归遍历形式。因退栈时需要区分其左、右子树是否已经遍历,故在结点进栈时附带有一个标志=0,进入左子树,=1,进入右子树栈ST保存结点指针ptr以及标志tag,top是栈顶指针。

void print (BinTreeNode * t; Type &x){

stack ST;int i,top;

top=0;//置空栈

while (t!=NULL&&t→data!=x||top!=0){ //寻找值为X的结点

while(t!=NULL&&t→data!=x){

①____________________;

ST[top].ptr=t; //进栈

ST[top].tag=0;

②___________________;

if (t!=NULL&&t→data==x) //找到值为X的结点

for (i=1;③____________________;i++)

cout<

else {

while (top>0&&ST[top].tag==1) //未找到值为X的结点

top--;

if (top>0) {

ST[top].tag=1; //转向右子树

④__________________;

(1) 请将缺失的语句补上

(2)请给出对于右图所示的二叉树,使用上述算法搜索值为9的结点和值为10的结点的结果,以及在栈ST中的变化。(top是栈顶指针)

数据结构试题1 答案

一、单选

1.B

2.C

3.A

4.B

5.D

6.A

7.A

8.B

二、简答

1.(1)、该连通图从①出做深度优先搜索,得到的深度优先生成树为:

结果不唯一(6分)

(2)、关节点为①、②、③、⑦、⑧(6分)

2.因为(13-1)%(4-1)=12%3=0,所以不需要添加空段。最佳归并树为

WPL=(5+9+13+12+16+14+17+18+28+37+20+30)*2+42=480

散列表HT[0..12],散列函数与再散列函数为

H0(key)=key mod 13;

H i=(H i-1+REV(key+1) mod 11+1) mod 13;

插入关键码序列为{2,8,31,20,19,18,53,27}

H0(2)=2,比较次数为1 H0(8)=8,比较次数为1

H0(31)=5,比较次数为1 H0(20)=7,比较次数为1

H0(19)=6,比较次数为1

H0(18)=5,冲突,H1=9,比较次数为2

H0(53)=1,比较次数为1

H0(27)=1,冲突,H1=7,冲突,H2=0,比较次数为3

插入8个关键码后的散列表

0123456789101112 27532311920818

4.各遍历次序如下:(10分)

前序:A,B,D,G,C,E,F,H (2分)

中序:D,G,B,A,E,C,H,F(3分)

后序:G,D,B,E,H,F,C,A(2分)

层次:A,B,C,D,E,F,G,H(3分)

三、计算

1.(1)、数据表定义

const int DefaultSize=100;

template class datalist; //数据表的前视声明

template class Element //数据表元素类的定义

private:

Type key; //关键码

field otherdata; //其它数据成员

public:

Type getKey (){return key;} //取当前结点的关键码

void setKey (const Type x ) {key=x;} //将当前结点的关键参政修改为x

}

template class datalist {

//用顺序表来存储待排序的元素,这些元素的类型是Type

public:

datalist (int MaxSz=DefaultSize) :MaxSize(Maxsz),CurrentSize (0) {Vector =new Element [MaxSz];}

private:

Element * Vector; // 存储待排序的元素的向量

int MaxSize,CurrentSize; //最大元素个数与当前元素个数

}

(2)、计数排序的算法(4分)

template

void countsort (datalist &initList,datalist & resultList) { int i,j,c: Type refer;

for (i=0;i

c=0;

refer:=initList.Vector[i].getKey();

for (j=0;j

if (initList.Vector[j].getKey()

resultList.Vector[0]=initList.Vector[i];

}

resultList.CurrentSize=initList.CurrentSize;

}

[解答 2]

template

void countsort &initList.datalist&resultList){ int *c=new int[initList.CurrentSize];

for (int i=0;i

for (i=0;i

for (int j=i+1;j

if (initList.Vector[j].getKey()

c[i]++;

else c[j]++;

for (i=0);i

resultList.Vector[c[i]]=initList.Vector[i];

resultList.CurrentSize=initList.CurrentSize;

}

(3)、对于n个记录的表。(2分)[解答 1] 关键码比较次数为

[解答 2] 关键码比较次数n(n-1)/2

四、其它

1、答案:计算二叉树的叶结点的个数。

2、(1)、

① top++

② t=t→leftChild

③ i<=top

④ t=ST[top].ptr→rightChild

搜索值为10的结点

ptr tag ptr tag ptr tag ptr tag ptr tag

ptr tag

→→

ptr tag ptr tag ptr tag ptr tag ptr tag 搜索值为9的结点

ptr tag ptr tag

数据结构试题2

一、单选题判断下列各小题叙述的正误。对,在题号前的括号内填入“√”;错,在题号前的括号内填入“×”。(每小题3分,共24分)

()(1)有n个结点的不同的二叉树有n!棵。

()(2)直接选择排序是一种不稳定的排序方法。

()(3)在2048个互不相同的关键码中选择最小的5个关键码,用堆排序比用锦标赛排序更快。

()(4)当3阶B_树中有255个关键码时,其最大高度(包括失败结点层)不超过8. ()(5)一棵3阶B_树是平衡是平衡的3路搜索树,反之,一棵平衡的3路搜索树是3

阶B_树。

()(6)在用散列表存储关键码集合时,可以用双散列法寻找下一个空桶。在设计再散列函数时,要求计算出的值与表的大小m互质。

()(7)在只有度为0和度为k的结点的k叉树中,设度为0的结点有n0个,度为K的结点有nk个,则有n0=nk+1.

()(8)折半搜索只适用于有序表,包括有序的顺序表和有序的链表。

二、阅读理解题:说明下面递归过程的功能(10分)

int unknown (BinTreNode * t) {

//指针t是二叉树的根指针。

if (t==NULL) return-1;

elseif (unknown (t→leftChild)>=unknown(t→rightChild))

return 1+unknown(t→leftChild);

else return 1+unknown(t→rightChild);

三、简答题(每小题12分,共36分)

1.设已有12个不等长的初始归并段,各归并段的长度(包括记录数)分别为RUN1(25),RUN1(12),RUN1(04),RUN1(55),RUN1(30),RUN1(47),RUN1(19),RUN1(80),RUN1(76),RUN1(92),RUN1(55),RUN1(89)若采用的是4路平衡归并排序,试画出其最佳归并树,并计算每趟归并时的读记录数。(括号内即为该归并段包含的记录数)

2.设散列表的长度m=13;散列函数为H(K)=K mod m,给定的关键码序列为19,14,23,01,68,20,84,27,55,11,试画出用线性探查法解决冲突时所构造的散列表。并求出在等概率的情况下,这种方法的搜索成功时的平均搜索长度和搜索不成功时的平均搜索长度。0123456789101112

搜索成功时的平均搜索长度:ASLsucc=

搜索不成功时的平均搜索长度:ASLsucc=

3.画出在一个初始为空的AVL树中依次插入3,1,4,6,9,8,5,7时每一步插入后AVL树的形态。若做了某种旋转,说明旋转的类型。然后,给出在这棵插入后得到的AVL树中删去根结点后的结果。

四、(10分)

已知一级元素为(46,25,78,62,12,37,70,29),试画出按元素排列次序插入生成的一棵二叉树。

五、综合算法题(10分)

设有一个表头指针为first的单链表。试设计一个算法,通过遍历一趟链表,将链表中所有结点按逆序链接。

六、程序填空题

下面给出的算法是建立AOV网络并对其进行拓扑排序的算法,其中有多个语句缺失。

Viod Graph::TopologicalSort(){

Edge * p,q;int i,j,k;

for(i=0;i

NodeTable[i].adj=NULL;

①___________________;

}

cin>>j>>k;//输入有向边

while(j&&k){

p=new Edge(k);//建立边结点,dest域赋为k

p→link=NodeTable[j].adj;//链入顶点j的边链表的前端

②__________________;

count[k]++;//顶点k入度加一

cin>>j>>k;

}

int top=-1;

for(i=0;i

if (count[i]=0){

count[i]=top;

③_____________;

for(i=0;i

if (top=-1)

{cout<<"Network has a cycle"<

else {

j=top;④________________;

cout<

q=NodeTable[j].adj;

while (q) {

k=q→dest;

if(--count[k]==0)

cout[k]=top;

top=k;

}

⑤_______________;

⑴ 请将缺失的语句补上:(5分)

⑵请给出对于右面AOV网络,使用上述算法进行拓扑排序的结果,以及在count数据中建立的链式栈的变化。(top 是栈顶指针)(5分)

top→

A B C D E F

初始

数据结构试题2 答案

一、×√√√×√××

二、求二叉树的高度

三、

1、构造4路归并树的过程

m=4:构造4佳归并树

n=12:共有12个初始归并段

(n-1)/(m-1)=(12-1)/(4-1)=3 所以有3个度为4的内结点

u=(12-1) mod (4-1)=2≠0 所以需要加内结点

m-u-1=4-2-1=1 所以需增加一个内结点

第一趟读记录数据=(4+13+19)

*1=36条

第二趟读记录数=(04+13+19)

*2+(25+30+47)*1=174条

第三趟读记

录数=

(04+13+19)

*3+

(25+30+47)

*2+

(55+55+76)

*1=498条

第四趟读记录数=(04+13+19)*4+(25+30+47)*3+

(55+55+76)*2+(80+89+92)=1083条

2、H(19)=19 mod 13=6 H1(2)=(1+1) mod

13=2 冲突

H(14)=14 mod 13=1 H2(2)=(2+1) mod

13=3 冲突

H(23)=23 mod 13=10 H3(2)=(3+1) mod 13=4

H(01)=01 mod 13=1 冲突 H(55)=55 mod 13=3 冲突

H1(01)=(1+1) mod 13=2 H1(55)=(3+1) mod 13=4 冲突

H(68)=68 mod 13=3 H2(55)=(4+1) mod 13=5

H(20)=20 mod 13=7 H(11)=11 mod 13=11

H(84)=84 mod 13=6 冲突

H1(84)=(6+1) mod 13=7 冲突

H1(84)=(7+1) mod 13=8

0123456789101112

14011827551920842311

搜索成功时的平均搜索长度:ASLsucc=(1+1+1+2+1+1+3+4+3+1)/10=0.8

搜索不成功时的平均搜索长度:ASLsucc=(1+9+8+7+6+5+4+3+2+1+3+2+1)/13=4

3、答案

(1) (2)

(3) (4)

(5)

(6) (7) (8) (9)

四、答案

五、

void inverse(ListNode *first)

{ if (first==NULL) return;//空表,无须逆置ListNode *p=first→link,*pr=Null;

while(p!=Null) {

first→link=pr;//逆置first指针

pr=first;//指针前移

first=p;

p=p→link;

}

}

六、⑴

① count[i]=0

② NodeTabl e[j].adj=p

③ top=i

④ top=count[top]

⑤ q=q→link

⑵ 拓扑排序结果:A,B,C,D,E,F

初始顶点A出栈顶点B出栈顶点C出栈顶点D出栈顶点E出栈顶点F出栈

数据结构模拟题(开卷)

《数据结构》模拟题(补) 一.单项选择题 1.在线性表的下列存储结构中,读取元素花费时间最少的是【】。 A.单链表B.双链表C.顺序表D.循环链表 2.设计一个判定表达式中左、右括号是否配对出现的算法,采用【】数据结构最佳。 A.集合B.线性表C.队列D.栈 3.n个结点的线索二叉树上含有的线索数为【】。 A.2n B.n-1 C.n D.n+1 4.设广义表D=(a,(b,c)),则tail(D)=【】。 A.b,c B.(b,c) C.((b,c)) D.c 5.由4个结点可以构造出【】种不同的二叉树。 A.12 B.13 C.14 D.15 6.在栈中,出栈操作的时间复杂度为【】。 A.O(1) B.O(n) C.O(log2n) D.O(n2) 7.假设Q[0..len-1]表示循环队列,f为队头指针,r为队尾指针,则进队操作语句是【】。 A.f=f+1 B.r=r+1 C.f=(f+1)%len D.r=(r+1)%len 8.一个n*n的对称矩阵,如果以行或列为主序放入内存,则其容量为【】。 A.n*n B.n*n/2 C.n*(n+1)/2 D.(n+1)*(n+1)/2 9.队列操作的原则是【】。 A.进优于出B.出优于进C.先进先出D.后进先出 10.下列数据结构中,【】是非线性数据结构。 A.栈B.串C.队列D.树 11.两个指针p和q,分别指向单链表的两个元素,p所指元素是q所指元素的前驱,则【】。 A.p==q B.q->next=p C.p->next=q D.p->next=q->next 12.数组A中,每个元素的长度为4个字节,行下标i从1到5,列下标j从1到4,从首 地址SA开始连续存放在存储器内,该数组按行存放时,元素A[3][2]的起始地址为【】。 A.SA+20 B.SA+36 C.SA+40 D.SA+45 13.已知一个顺序存储的线性表,设每个结点需占m个存储单元,若第一个结点的地址为d1, 则第i个结点的地址为【】。 A.d1+(i-1)*m B.d1+i*m C.d1+(i+1)m D.d1-i*m 14.分析下列算法suanfa1(n)的时间复杂度是【】。 void suanfa1(int n) { int i,j,x=1; for(i=0;i

数据结构模拟试题1

一、填空题(共20分,每空1分)。 1.数据结构是研究数据元素之间抽象化的相互关系和这种关系在计算机中的存储结构表 示,通常有下列四种存储结构:(1)、(2)、(3)和(4)。 2.评价算法的标准很多,通常是以执行算法所需要的(5)和所占用的(6)来判别一 个算法的优劣。 3.队列操作的原则是(7),栈的插入和删除操作在(8)进行。 4.对循环队列Q,它的最大存储空间是MAXSIZE,队头指针是front,队尾指针是rear, 采用少用一个存储单元的方法解决假溢出时,队满的判断条件是(9),队空的判断条件是(10)。 5.在以head 为表头指针的带有头结点的单链表和循环单链表中,判断链表为空的条件分 别为(11)和(12)。 6.假设二维数组A[6][8],每个元素用相邻的4个字节存储,存储器按字节编址,已知 A[0][0]的存储位置为100,按行优先顺序存储的元素A[2][5]的第一个字节的地址为(13)。 7.空格串的长度为串中所包含(14)字符的个数,空串的长度为(15)。 8.有向图G 用邻接矩阵A[n][n] 存储表示,其第i 行的所有元素之和等于顶点i 的 (16)。 9.在关键字序列(12 ,23 ,34 ,45 ,56 ,67 ,78 ,89 ,91) 中折半查找 关键字为89和25的结点时,所需进行的比较次数分别为(17)和(18)。 10.请说出两种处理哈希冲突的方法(19)、_(20)_。 二、选择题(共20分,每题2分)。 1.对线性表,在下列哪种情况下应采用链式存储结构?() A.经常需要随机存取元素 B.经常需要进行插入和删除操作 C.表中元素的个数不变 D.表中元素需要占据一片连续的存储空间 2.从一个具有n个结点的单链表中查找其值等于x结点时,在查找成功情况下,则平均比 较()个结点。 A.n B.n/2 C.(n-1)/2 D.(n+1)/2 3.若对某线性表最常进行的操作是在最后一个元素之后插入和删除第一个元素,则采用 ()存储方式最节省运算时间。 A.单链表 B.双链表 C.仅有头指针的单循环链表 D.仅有尾指针的单循环链表 4.在一个单链表中,若要删除p指针所指结点的后继结点,则执行()。 A.p=p->next; p->next=p->next->next; B.p->next=p->next->next; C.p=p->next; D.p=p->next->next;

数据结构模拟试题及答案

数据结构模拟试题一 一、判断题(每小题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.便于按行处理矩阵元素

计算机专业基础综合(数据结构)模拟试卷1

计算机专业基础综合(数据结构)模拟试卷1 (总分:72.00,做题时间:90分钟) 一、单项选择题(总题数:21,分数:42.00) 1.单项选择题1-40小题。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。(分数: 2.00)__________________________________________________________________________________________ 解析: 2.若某线性表中最常用的操作是在最后一个结点之后插入一个结点和删除第一个结点,则下面最节省运算时间的存储方式是( )。 (分数:2.00) A.单链表 B.带有头指针的单循环链表 C.双链表 D.带有尾指针的单循环链表√ 解析:解析:在链表中的最后一个结点之后插入一个结点要知道终端结点的地址,所以,单链表、带有头指针的单循环链表、双链表都不合适。考虑在带有尾指针的单循环链表中删除第一个结点,其时间性能是O(1),所以答案是D。 3.已知两个长度分别为l和s的降序链表,若将它们合并为一个长度为l+s的升序链表,则最坏情况下的时间复杂度是( )。 (分数:2.00) A.O(l) B.O(ls) C.O(min(l,s)) D.O(max(l,s)) √ 解析:解析:在合并过程中,最坏的情况是两个链表中的元素依次进行比较,比较的次数最少是m和n中的最大值。 4.线性表中存放的主要是( )。 (分数:2.00) A.整型常量 B.字符 C.数据元素√ D.信息元素 解析:解析:线性表中主要存放的是数据元素,而数据元素可以是整型也可以是字符型,但对于一个线性表来说,所有的数据元素的类型必须相同。 5.下面的叙述中正确的是( )。 I.线性表在链式存储时,查找第i个元素的时间同i的值成正比Ⅱ.线性表在链式存储时,查找第i个元素的时间同i的值无关Ⅲ.线性表在顺序存储时,查找第i个元素的时间同i的值成正比 (分数:2.00) A.仅I √ B.仅Ⅱ C.仅Ⅲ D.I、Ⅱ、Ⅲ 解析:解析:在线性表链式存储结构中,查找第i个元素的时间与i的位置成正比。而在顺序存储结构中查找第i个元素的时间与i的位置无关。 6.对于某线性表来说,主要的操作是存取任一指定序号的元素和在最后进行插入运算,那么应该选择( )存储方式最节省时间。 (分数:2.00) A.顺序表√

数据结构模拟试题1

一、单项选择题(在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。每小题2分,共40分) 1、串的长度是()。 A、串中不同字母的个数 B、串中不同字符的个数 C、串中所含字符的个数,且大于0 D、串中所含字符的个数 2、若用数组S[1..n]作为两个栈S1和S2的共同存储结构,对任何一个栈,只有当S全满时才不能作入栈操作。为这两个栈分配空间的最佳方案是()。 A、S1的栈底位置为0,S2的栈底位置为n+1 B、S1的栈底位置为0,S2的栈底位置为n/2 C、S1的栈底位置为1,S2的栈底位置为n D、S1的栈底位置为1,S2的栈底位置为n/2 3、队列操作的原则是()。 A、先进先出 B、后进先出 C、只能进行插入 D、只能进行删除 4、有64个结点的完全二叉树的深度为()(根的层次为1)。 A、8 B、7 C、6 D、5 5、在有n个结点的二叉链表中,值为非空的链域的个数为()。 A、n-1 B、2n-1

C、n+1 D、2n+1 6、带权有向图G用邻接矩阵A存储,则顶点i的人度等于A中()。 A、第i行非∞的元素之和 B、第i列非∞的元素之和 C、第i行非∞且非0的元素个数 D、第i列非∞且非0的元素个数 7、在有n个结点且为完全二叉树的二叉排序树中查找一个键值,其平均比较次数的数量级为()。 A、0(n) B、0(log2n) C、0(nolg2n) D、0(n2) 8、若表R在排序前已按键值递增顺序排列,则()算法的比较次数最少。 A、直接插入排序 B、快速排序 C、归并排序 D、选择排序 9、下列排序算法中,()排序在某趟结束后不一定选出一个元素放到其最终的位置上。 A、选择 B、冒泡 C、归并 D、堆

《数据结构C》模拟试题

山东科技大学继续教育学院 《数据结构C》模拟试题一 班级姓名学号 一、选择题(20分) 1. 组成数据的基本单位是( )。 (A) 数据项(B)数据类型(C)数据元素(D)数据变量 2. 线性表的链接实现有利于( )运算。 (A) 插入(B)读表元(C)查找(D)定位 3. 串的逻辑结构与( )的逻辑结构不同。 (A) 线性表(B)栈(C)队列(D)树 4. 二叉树第i(i≥1)层最多有( )个结点。 (A) 2i(B)2i (C) 2i-1(D) 2i-1 5. 设单链表中p指向结点A,若要删除A后结点(若存在),则需要修改p的操作为( ) (A) p.Next = p.Next.Next (B)p=p.Next (C)p=p.Next.Next (D)p.Next=p 6. 设一数列的输入顺序为1,2,3,4,5,6,通过栈操作不可能排成的输出序列为( ) (A) 3,2,5,6,4,1 (B) 1,5,4,6,2,3 (C) 2,4,3,5,1,6 (D) 4,5,3,6,2,1 7. 设字符串S1=’ABCDEFG’,S2=’PQRST’,则运算S=CONCAT(SUB(S1,2,LENGTH(S2)),SUB(S1,LENGTH(S2),2))的结果为( ) (A) ‘BCQR’ (B) ‘BCDEF’ (C) ’BCDEFG’ (D) ‘BCDEFEF’ 8. 有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占1个地址空间,则a85地址为( ) (A)13 (B) 33 (C) 18 (D) 40 9. 如果结点A有3个兄弟,而且B为A的双亲,则B的度为( ) (A) 3 (B) 4 (C) 5 (D) 1 10. 线索化二叉树中某结点D没有左孩子的必要条件是( ) (A) D.Lchild=null (B) D.ltag=1 (C) D.Rchild=null (D) D.ltag=0 二、填空题(20分) 1. 对于一个以顺序实现的循环队列Q[0..m_1],队头、队尾指针分别为f,r,其判空的条件是 ,判满的条件是。 2. 循环链表的主要优点是。 3. 给定一个整数集合{3,5,6,9,12},画出其对应的一棵Huffman树。 4 双向循环链表中,在p所指的结点之后插入f所指的结点,其操作为。 5. 下列为朴素的模式匹配算法,请在算法的处填入正确的子句。

《数据结构》模拟试卷一及答案

模拟试卷一 一、单选题(每题 2 分,共20分) 1.以下数据结构中哪一个是线性结构?( ) A. 有向图 B. 队列 C. 线索二叉树 D. B树 2.在一个单链表HL中,若要在当前由指针p指向的结点后面插入一个由q指向的结点, 则执行如下( )语句序列。 A. p=q; p->next=q; B. p->next=q; q->next=p; C. p->next=q->next; p=q; D. q->next=p->next; p->next=q; 3.以下哪一个不是队列的基本运算?() A. 在队列第i个元素之后插入一个元素 B. 从队头删除一个元素 C. 判断一个队列是否为空 D.读取队头元素的值 4.字符A、B、C依次进入一个栈,按出栈的先后顺序组成不同的字符串,至多可以组成 ( )个不同的字符串? A.14 B.5 C.6 D.8 5.由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为( )。 A. 11 B.35 C. 19 D. 53 图一 6.该二叉树结点的前序遍历的序列为( )。 A.E、G、F、A、C、D、B B. E、A、G、C、F、B、D C. E、A、C、B、D、G、F D. E、G、A、C、D、F、B 7.该二叉树结点的中序遍历的序列为( )。 A. A、B、C、D、E、G、F B. E、A、G、C、F、B、D C. E、A、C、B、D、G、F D. B、D、C、A、F、G、E 8.该二叉树的按层遍历的序列为( )。 A.E、G、F、A、C、D、B B. E、A、C、B、D、G、F C. E、A、G、C、F、B、D D. E、G、A、C、D、F、B 9.下面关于图的存储的叙述中正确的是( )。 A.用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关B.用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关 C. 用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关 D.用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关10.设有关键码序列(q,g,m,z,a,n,p,x,h),下面哪一个序列是从上述序列出发建 堆的结果?( )

数据结构模拟试题9

一.选择题(每小题1分,共8分) 1.设有一个10阶的对称矩阵a,采用压缩存储方式,以行序为主存储,a[0][0]的存储地址为100,每个元素占1个地址空间,则a[3][2]的地址为()。 (A)102 (B)105 (C)106 (D)108 2.森林转换为二叉树后,从根结点开始一直沿着右子数下去,一共有4个结点,表明()。 (A)森林有4棵树(B)森林的最大深度为4 (C)森林的第一棵树有4层(D)森林有4个结点 3.在含n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为()。 (A)e (B)2e (C)n^2-e (D)n^2-2e 4.在内部排序中,排序时不稳定的有()。 (A)插入排序(B)冒泡排序(C)快速排序(D)归并排序 5.设一数列的顺序为1,2,3,4,5,通过栈结构不可能派成的顺序数列为()。 (A)3,2,5,4,1 (B)1,5,4,2,3 (C)2,4,3,5,1 (D)4,5,3,2,1 6.一个n条边的连通无向图,其顶点的个数至多为()。 (A)n-1(B)n(C)n+1(D)nlog2n 7.总共3层的完全二叉树,其结点数至少有()个。 (A)3 (B)4 (C)7 (D)8 8.已知某算法的执行时间为(n^3+n^2+n)log2(n+2),n为问题规模,则该算法的时间复杂度是()。 (A)O(n)(B)O(n^2) (C)O(log2n)(D)O(n^3log2n) 二.判断题(每题1分,共8分。正确的打√,错误的打×) 1.只要是算法,肯定可以在有限的时间内完成。() 2.无论是线性表还是树,每一个结点的直接前驱结点最多只有一个。() 3.不论是行优先还是列优先,二维数组的最后一个元素的存储位置是一样的。() 4.直接插入排序时,关键码的比较次数与记录的初始排列无关。() 5.二叉树的先序遍历不可能与中序遍历相同。() 6.任何一棵二叉树,不可能没有叶子结点。() 7.一个稀疏矩阵采用三元组法存储不可能是(5,3,7),(5,4,4),(5,3,5)。() 8.一个无序的顺序表不能采用折半查找法进行查找。()。

数据结构模拟试题一及答案汇编

学习-----好资料 数据结构模拟试题一 一、判断题(每小题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指向链表最后

数据结构模拟试卷(含答案)

数据结构设计课程代码:7399 一、单项选择题(在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。每小题2分,共40分) 1、串的长度是()。 A、串中不同字母的个数 B、串中不同字符的个数 C、串中所含字符的个数,且大于0 D、串中所含字符的个数 2、若用数组S[1..n]作为两个栈S1和S2的共同存储结构,对任何一个栈,只有当S全满时才不能作入栈操作。为这两个栈分配空间的最佳方案是()。 A、S1的栈底位置为0,S2的栈底位置为n+1 B、S1的栈底位置为0,S2的栈底位置为n/2 C、S1的栈底位置为1,S2的栈底位置为n D、S1的栈底位置为1,S2的栈底位置为n/2 3、队列操作的原则是()。 A、先进先出 B、后进先出 C、只能进行插入 D、只能进行删除 4、有64个结点的完全二叉树的深度为()(根的层次为1)。 A、8 B、7 C、6 D、5 5、在有n个结点的二叉链表中,值为非空的链域的个数为()。

A、n-1 B、2n-1 C、n+1 D、2n+1 6、带权有向图G用邻接矩阵A存储,则顶点i的人度等于A中()。 A、第i行非∞的元素之和 B、第i列非∞的元素之和 C、第i行非∞且非0的元素个数 D、第i列非∞且非0的元素个数 7、在有n个结点且为完全二叉树的二叉排序树中查找一个键值,其平均比较次数的数量级为()。 A、0(n) B、0(log2n) C、0(nolg2n) D、0(n2) 8、若表R在排序前已按键值递增顺序排列,则()算法的比较次数最少。 A、直接插入排序 B、快速排序 C、归并排序 D、选择排序 9、下列排序算法中,()排序在某趟结束后不一定选出一个元素放到其最终的位置上。 A、选择 B、冒泡 C、归并 D、堆

数据结构模拟题1

模拟题 一.单项选择题 1. 如图所示的4棵二叉树中,哪一个是平衡二叉树 A. B. C. D. 2. 若一个算法的语句频度之和为T(n)=3n+ nlog2n + n2,则算法的时间复杂度为。 A. nlog2n + n2 D.nlog2n 3. 插入和删除操作只能在同一端进行的线性表,成为。 A.队列 B.循环队列 C.栈 D.循环栈 4. 一棵树Tr转换成相应的二叉树Bt,那么对Tr的后序遍历是对Bt的。 A.先序遍历B.中序遍历C.后序遍历D.无法确定 5. 判定一个循环队列Q(最多元素为m0)为空的条件是。 A.= =Q. Rear B. = =( + 1 ) % m0 C.!= D. != ( Q . rear +1 ) % m0 6. 广义表((a,b,( ),c),(d,(e)),())的长度是。 .4 C 7. 在一个无向图中,所有顶点的度数之和,是其所有边数之和的倍。 A.1/2 B.1 C.2 D.4 8. tail(head((a,b),c,(c,d)))的结果是。 A.b B.(b)C.(a,b)D.(c,d) 9. 深度为k的满二叉树有个分支 ..结点。 -2 C +1 10.一棵有n个结点的树,在把它转换成对应的二叉树之后,该二叉树根结点的左子树上共有个结点。 A.n-2 B.n-1 C.n+1 D.n+2 11. n个顶点的带权无向连通图的最小生成树包含条边。 2 +1 12. 如图,若从顶点a出发按广度优先法进行遍历,可能得到的一种顶点序列是。 A.abcedf B.abcefd C.aebcfd D.acfdeb 13. 无向图的邻接矩阵是矩阵。 A.对称 B.上三角 C.下三角 D.稀疏 14.一个无向连通网图的最小生成树。 A.可能不存在B.只有一棵C.一定有多棵D.有一棵或多棵 15. 在下面给出的各种排序算法中,只有是稳定排序算法。 A.堆排序B.快速排序C.直接选择排序D.冒泡排序

数据结构期末模拟试题05(有答案)

课程测试试题(卷) ----------------------以下为教师填写-------------------- I、命题院(部):数学与计算机科学学院 II、课程名称:数据结构 III、测试学期:20 -20 学年度第学期 IV、测试对象:学院专业级班 V、问卷页数(A4):页 VI、答卷页数(A4):页 VII、考试方式:闭卷(开卷、闭卷或课程小论文,请填写清楚) VIII、问卷内容:(请老师在出题时安排紧凑,填空题象征性的留出一点空格,学生将所有的答案做在答题纸上的规定位置,并写清楚大题、小题的题号) 一、单选题(每题 2 分,共20分) 1.以下数据结构中哪一个是线性结构?( ) A. 有向图 B. 队列 C. 线索二叉树 D. B树 2.在一个单链表HL中,若要在当前由指针p指向的结点后面插入一个由q指 向的结点,则执行如下( )语句序列。 A. p=q; p->next=q; B. p->next=q; q->next=p; C. p->next=q->next; p=q; D. q->next=p->next; p->next=q; 3.以下哪一个不是队列的基本运算?() A. 在队列第i个元素之后插入一个元素 B. 从队头删除一个元素 C. 判断一个队列是否为空 D.读取队头元素的值 4.字符A、B、C依次进入一个栈,按出栈的先后顺序组成不同的字符串,至多 可以组成( )个不同的字符串? A.14 B.5 C.6 D.8 5.由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为 ( )。

以下6-8题基于图1。 6.该二叉树结点的前序遍历的序列为( )。 A.E、G、F、A、C、D、B B.E、A、G、C、F、B、D C.E、A、C、B、D、G、F D.E、G、A、C、D、F、B 7.该二叉树结点的中序遍历的序列为( )。 A. A、B、C、D、E、G、F B. E、A、G、C、F、B、D C. E、A、C、B、D、G、F E.B、D、C、A、F、G、E 8.该二叉树的按层遍历的序列为( )。 A.E、G、F、A、C、D、B B. E、A、C、B、D、G、F C. E、A、G、C、F、B、D D. E、G、A、C、D、F、B 9.下面关于图的存储的叙述中正确的是( )。 A.用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关 B.用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关 C. 用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关 D.用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关 10.设有关键码序列(q,g,m,z,a,n,p,x,h),下面哪一个序列是从上述 序列出发建堆的结果?( ) A. a,g,h,m,n,p,q,x,z B. a,g,m,h,q,n,p,x,z C. g,m,q,a,n,p,x,h,z D. h,g,m,p,a,n,q,x,z 二、填空题(每空1分,共26分) 1.数据的物理结构被分为_________、________、__________和___________四 种。 2.对于一个长度为n的顺序存储的线性表,在表头插入元素的时间复杂度为 _________,在表尾插入元素的时间复杂度为____________。 3.向一个由HS指向的链栈中插入一个结点时p时,需要执行的操作是 ________________;删除一个结点时,需要执行的操作是 ______________________________(假设栈不空而且无需回收被删除结点)。

数据结构模拟题(开卷)

《数据结构》模拟题(开卷) 一、单项选择题 1.分析下列算法suanfa1(n): void suanfa1(int n) { int i,j,x=1; for(i=0;i

数据结构与算法模拟试卷一、二及参考答案

四川大学 《数据结构与算法分析》课程 考试模拟试卷 模拟试卷一 一、单选题(每题2 分,共20分) 1.以下数据结构中哪一个是线性结构?( ) A. 有向图 B. 队列 C. 线索二叉树 D. B树 2.在一个单链表HL中,若要在当前由指针p指向的结点后面插入一个由q指向的结点, 则执行如下( )语句序列。 A. p=q; p->next=q; B. p->next=q; q->next=p; C. p->next=q->next; p=q; D. q->next=p->next; p->next=q; 3.以下哪一个不是队列的基本运算?() A. 在队列第i个元素之后插入一个元素 B. 从队头删除一个元素 C. 判断一个队列是否为空 D.读取队头元素的值 4.字符A、B、C依次进入一个栈,按出栈的先后顺序组成不同的字符串,至多可以组成 ( )个不同的字符串? A.14 B.5 C.6 D.8 5.由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为( )。 以下6-8题基于图1。 6.该二叉树结点的前序遍历的序列为( )。 A.E、G、F、A、C、D、B B.E、A、G、C、F、B、D C.E、A、C、B、D、G、F D.E、G、A、C、D、F、B 7.该二叉树结点的中序遍历的序列为( )。 A. A、B、C、D、E、G、F B. E、A、G、C、F、B、D C. E、A、C、B、D、G、F E.B、D、C、A、F、G、E 8.该二叉树的按层遍历的序列为( )。

A.E、G、F、A、C、D、B B. E、A、C、B、D、G、F C. E、A、G、C、F、B、D D. E、G、A、C、D、F、B 9.下面关于图的存储的叙述中正确的是( )。 A.用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关 B.用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关 C. 用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关 D.用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关10.设有关键码序列(q,g,m,z,a,n,p,x,h),下面哪一个序列是从上述序列出发建 堆的结果?( ) A. a,g,h,m,n,p,q,x,z B. a,g,m,h,q,n,p,x,z C. g,m,q,a,n,p,x,h,z D. h,g,m,p,a,n,q,x,z 二、填空题(每空1分,共26分) 1.数据的物理结构被分为_________、________、__________和___________四种。 2.对于一个长度为n的顺序存储的线性表,在表头插入元素的时间复杂度为_________, 在表尾插入元素的时间复杂度为____________。 3.向一个由HS指向的链栈中插入一个结点时p时,需要执行的操作是________________; 删除一个结点时,需要执行的操作是______________________________(假设栈不空而 且无需回收被删除结点)。 4.对于一棵具有n个结点的二叉树,一个结点的编号为i(1≤i≤n),若它有左孩子则左孩 子结点的编号为________,若它有右孩子,则右孩子结点的编号为________,若它有双 亲,则双亲结点的编号为________。 5.当向一个大根堆插入一个具有最大值的元素时,需要逐层_________调整,直到被调整 到____________位置为止。 6.以二分查找方法从长度为10的有序表中查找一个元素时,平均查找长度为________。 7.表示图的三种常用的存储结构为_____________、____________和_______________。 8.对于线性表(70,34,55,23,65,41,20)进行散列存储时,若选用H(K)=K %7 作为散列函数,则散列地址为0的元素有________个,散列地址为6的有_______个。 9.在归并排序中,进行每趟归并的时间复杂度为______,整个排序过程的时间复杂度为 ____________,空间复杂度为___________。 10.在一棵m阶B_树上,每个非树根结点的关键字数目最少为________个,最多为________ 个,其子树数目最少为________,最多为________。 三、运算题(每题6 分,共24分) 1.写出下列中缀表达式的后缀形式: (1)3X/(Y-2)+1 (2)2+X*(Y+3) 2.试对图2中的二叉树画出其: (1)顺序存储表示的示意图; (2)二叉链表存储表示的示意图。 3.判断以下序列是否是小根堆? 如果不是, 将它调 图2 整为小根堆。 (1){ 12, 70, 33, 65, 24, 56, 48, 92, 86, 33 } (2){ 05, 23, 20, 28, 40, 38, 29, 61, 35, 76, 47, 100 } 4.已知一个图的顶点集V和边集E分别为: V={1,2,3,4,5,6,7};

数据结构模拟习题1 及其答案

模拟试题1 一、选择题(20分) 1. 组成数据的基本单位是( )。 (A) 数据项(B)数据类型(C)数据元素(D)数据变量 2. 线性表的链接实现有利于( )运算。 (A) 插入(B)读表元(C)查找(D)定位 3. 串的逻辑结构与( )的逻辑结构不同。 (A) 线性表(B)栈(C)队列(D)树 4. 二叉树第i(i≥1)层最多有( )个结点。 (A) 2i(B)2i (C) 2i-1(D) 2i-1 5. 设单链表中p指向结点A,若要删除A后结点(若存在),则需要修改p的操作为( ) (A) p.Next = p.Next.Next (B)p=p.Next (C)p=p.Next.Next (D)p.Next=p 6. 设一数列的输入顺序为1,2,3,4,5,6,通过栈操作不可能排成的输出序列为( ) (A) 3,2,5,6,4,1 (B) 1,5,4,6,2,3 (C) 2,4,3,5,1,6 (D) 4,5,3,6,2,1 7. 设字符串S1=’ABCDEFG’,S2=’PQRST’,则运算S=CONCA T(SUB(S1,2,LENGTH(S2)),SUB(S1,LENGTH(S2),2))的结果为( ) (A) ‘BCQR’(B) ‘BCDEF’(C) ’BCDEFG’(D) ‘BCDEFEF’ 8. 有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占1个地址空间,则a85地址为( ) (A)13 (B) 33 (C) 18 (D) 40 9. 如果结点A有3个兄弟,而且B为A的双亲,则B的度为( ) (A) 3 (B) 4 (C) 5 (D) 1 10. 线索化二叉树中某结点D没有左孩子的必要条件是( ) (A) D.Lchild=null (B) D.ltag=1 (C) D.Rchild=null (D) D.ltag=0 二、填空题(20分) 1. 对于一个以顺序实现的循环队列Q[0..m_1],队头、队尾指针分别为f,r,其判空的条件是 ,判满的条件是。 2. 循环链表的主要优点是。 3. 给定一个整数集合{3,5,6,9,12},画出其对应的一棵Huffman树。 4 双向循环链表中,在p所指的结点之后插入f所指的结点,其操作为。 5. 下列为朴素的模式匹配算法,请在算法的处填入正确的子句。 public int insert(string s, string t) { int i = 0; int j = 0; while (i < s.Length && j < t.Length) {

数据结构模拟试题

模拟试题1 一、选择题(20分) 1.组成数据的基本单位是( )。 (A)数据项 (B)数据类型 (C)数据元素 (D)数据变量 2.线性表的链接实现有利于( )运算。 (A)插入 (B)读表元 (C)查找 (D)定位 3.串的逻辑结构与( )的逻辑结构不同。 (A)线性表 (B)栈 (C)队列 (D)树 4.二叉树第i(i≥1)层最多有( )个结点 (A)2i, (B)2i (C)2i-1 (D)2i一1 5.设单链表中指针p指向结点A,若要删除A之后的结点(若存在),则修改指针的 操作为( )。 (A)p->next=p->next->next (B)p=p->next (C)p=p->next->next (D)p->next=p 6.设一数列的输入顺序为1,2,3,4,5,6,通过栈操作不可能排成的输出序列为( ) (A)3,2,5,6,4,1 (B)l,5,4,6,2,3 (C)2,4,3,5,1,6 (D)4,5,3,6,2,1 7.设字符中S1=‘ASCDEFG’,S2=‘PQRST’,则运算S=Concat(Sub(S1,2,Length(S2)),Sub(S1,Length(S2),2))后结果为( )。 (A)‘BCQR’ (B)‘BCDEF’ (C)‘BCDE F G’ (D)‘BCDEFEF’ 8.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第1个 元素,其存储地址为1,每个元素占用1个地址空间,则a85的地址为( )。 (A)13 (B)33 (C)18 (D)40 9.如果结点A有3个兄弟,且B为A的双亲,则B的度为( )。 (A)3 (B)4 (C)5 (D)1 10.线索化二叉树中某结点D,没有左孩子的主要条件是( )。 (A)D一>Lchild=NULL (B)D一>1tag=1 (C)D一>Rchild=NULL (D)D一>1tag=0 二、填空题(每空2分,共22分) 1.对于一个以顺序实现的循环队列Q[0…m—1],队首、队尾指针分别为f和r,其判空的条件是____________,判满的条件是______________。 2.循环链表的主要优点是__________________。 3.给定一个整数集合{3,5,6,9,12},画出其对应的一棵Huffman树__________ 4.在双向循环链表中,在指针p所指的结点之后插入指针f所指的结点,其操作为________________ 5.下面为朴素的模式匹配算法,请在算法的下划线处填上正确的子句 int index(s,t) string *s,*t; { i=j=0; while((i<s一>len)&&(j<t一>len)) if (s一>ch[i]==t一>ch[j]){

《数据结构》模拟试卷四

模拟试卷四 一、选择题(每小题2分,共16分) 1.一个栈的输入序列为12345,则下列序列中是栈的输出序列的是。 a.2 3 4 1 5 b. 5 4 1 3 2 c.3 1 2 4 5 d.1 4 2 5 3 2.若某线性表最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用下列存储方式最节省时间。 a. 单链表 b.双链表 c.带头结点的双循环链表 d.单循环链表 3.二叉树在线索化后,仍不能有效求解的问题是。 a.先序线索二叉树中求先序后继 b. 中序线索二叉树中求中序后继 c. 中序线索二叉树中求中序前趋 d.后序线索二叉树中求后序后继 4.求最短路径的FLOYD算法的时间复杂度为。 a.O(n) b.O(n+e) c.O(n2) d.(n3) 5.下列排序算法中,在待排序的数据表已经为有序时,花费时间反而最多的是。 a.快速排序 b. 希尔排序 c.冒泡排序 d.堆排序 6. 下列排序算法中,每一趟都能选出一个元素放在其最终位置上,并且 是不稳定的。 a.冒泡排序 b. 希尔排序 c.直接选择排序 d.直接插入排序 7.在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A的左孩子的平衡因子为 -1,右孩子的平衡因子为0,则应作型调整以使其平衡。 a. LL b. LR c. RL d. RR 8. 数据表A中有100O0个元素,如果仅要求求出其中最大的10个元素,则采用 排序算法最节省时间。 a.堆排序 b.希尔排序 c. 快速排序 d.直接选择排序 二、判断题(每小题1分,井10分) 1.()线性表的唯一存储形式是链表。 2.()已知指针P指向链表L中的某结点,执行语句P := P^.next不会删除该链表中的结点。 3.()在键队列中,即使不设置尾指针也能进行入队操作。

相关文档
最新文档