数据结构笔试题三





〖微笑天使收集整理QQ:84024257〗

一、选择题(每小题2分,共8分)

1. 若需要利用形参直接访问实参,则应把形参变量说明为( )参数。

A. 指针 B. 引用
C. 值

2. 在一个单链表HL中,若要在指针q所至结点的后面插入一个由指针p所指向的结点,则执行()。

A. q->next=p->next; p->next=q;
B. p->next=q->next; q=p;
C. q->next=p->next; p->next=q;
D. p->next=q->next; q->next=p;

3. 在一个顺序队列中,队首指针指向对首元素的()位置。

A. 后一个 B. 前一个
C. 当前

4.向二叉搜索树中插入一个元素时,其时间复杂度大致为( )。

A. O(long2n) B. O(n)
C. O(1) D. O(nlong2n)

二.、填空题(每空1分,共同社2分)

1. 数据的存储结构被分为_______________,________________,_______________和______________四种。

2. 对于一个顺序存储的线性表,在表头插入元素的时间复杂度为______________, 在表尾插入元素的时间复杂

度为_______________。

3. 在稀疏矩阵所对应的三远组线性表中,每个三元组元素按______________为主序,_______________为辅序

的次序排列。

4. 在广义表的存储结构中,单元表结点与表元素结点有一个域对应不同,各自分别为_______________域和_______________域。

5. 中级表达式3+x*(2.4/5-6)所对应的后缀表达式为_________________。

6. 在一棵高度为h的3叉树中,最多含有_______________结点。

7. 假定一棵二叉树的结点数为18,则它的最小深度为_______,最大深度为______。

8. 在一课二叉树搜索中,每个分支结点的左子树上所有的结点的值一定______该结点的值,右子树上所有的结

点的值一定_____该结点的值。

9. 当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层______调整,知道被调整到______位置为止。

10. 表示图的三种存储结构为________________,_________________和_________________。

11. 对用邻接矩阵表示的具有n个定点和e条边的图进行任一种遍历时,其时间复杂度为__________,对用邻接

表表示的图进行任一种遍历时,其时间复杂度为______________。

12. 从有序表(12,18,30,43,56,78,82,95)中依次二分查找43和56元素时,其查找长度分别为______和______。

13. 假定对长度n=144的线性表进行索引查找,并假定每个子表的长度均为 ,则进行索引查找的平均查找长度

为_______,时间复杂度为________________。

14. 一棵B_树中的所有叶子结点均处在_______________上。

15. 每次从无序表中顺序取出一个元素,把它插入到有序表中的适当位置,此种排序方法叫做______排序;每

次从无序表中挑选出一个最小或最大元素,把它交换到有序表的一端,此种排序方法叫做______排序。

16. 快速排序在平均情况下的时间复杂度为________________,在最环情况下的时间复杂度为

______________。

三.、运算题(每小题6分,共24分)

1. 假定一棵普通树的广义表表示a(b(e),c(f(h,i),g),d),分别写出先根、后根、按层遍历的结果。

先根:

后根:

按层:

2. 已知一个带全图的定点集V和边集G分别为:

V={0,1,2,3,4,5,6,7};

E={(0,1)8,(0,2)5,(0,3)2,(1,5)6,(2,3)25,(2,4)13(3,5)9};

则求出该图的最小生成树的权。

最小生成树的泉:

3. 对于线性表(18,25,63,50,41,32,90,66)进行三列存储时,若选用H(K)=K%11作为散列函数,则散

列地址为0的元素有______个,散列地址为3的元素有______个,散列地址为8的元素有______个。

4. 假定一组纪录的排序码为(46,79,56,38,40,80,25,34),在对其进行快速排序的过程中,进行第

一次划分后得到的排序码序列为。

四、阅读算法,回答问题(每小题8分,共16分)

1. Void AD(LNode*&HL)
{
Insert(HL,30);
Insert(HL,50);
Delete(HL,26);
Delete(HL,55);
}

假定调用该算法时以HL为表头指针的单链表中的内容为(15,26,48,55),则调用返回后该单链表中的内容变为:

__________________________________________。

2. Void AI(adjmatrixGA,int I,int n)
{
cout<<I<<‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘;
visited[I]=true;
for(int j=0;j<n;j++)
if (Ga[I][j]! =0&&[I][j]! =MaxValue&&!visited[j])
AI(GA,J,n);
}

该算法的功能为:

________________________________________________________________________。

五、算法填空,在画有横线的地方填写合适的内容

此为以BST为树根指针的二叉搜索树上插入值为litem的结点的递归算法。
Void Insert(BtreeNode*&BST,const ElemType&item)
{
if(BST==NULL)
{ BtreeNode*p=newBTreeNode;
p->data=item;

_________________________________________________________;
BST=p;
}
else if(item<BST->data)____________________________________;
else_________________________________________;
}

六. 编写算法(10分)

编写向类型为List的线性表L中第I个元素为值插入一个元素的算法,假定不需要对I的值进行有效性检查,同时不需要检查存储空间是否用完。
Void Insert(List&L,int I,ElemType x)

〖微笑天使收集整理QQ:84024257〗

答案:一、 单选题

1、B.2、D.3、B.4、A

二、 填空

1、 顺序结构、链接结构、索引结构、散列结构(次序无先后)
2、 O(n)、O(1)
3、 行号、列号
4、 值(或data)、子表指针(或sublist)
5、 3x2.45/6-*+
6、 (3h-1)/2
7、 5 18
8、 小于 大于
9、 向上 堆顶
10、邻接矩阵 邻接表 边集数组(次序无先后)
11、O(n2) O(e)
12、1 3
13、13 O( )
14、同一层
15、插入 选择
16、O(nlog2n) O(n2)
三、 运算题
1、 先根:a,b,e,c,f,h,I,g,d;
后根:e,b,h,I,f,g,c,d,a;
按层:a,b,c,d,e,f,g,h,I;
2、 最小生成树的权:34
3、 1 1 2 每个数据占2分
4、 (40 ,34 ,25,38,46,80,56,79)
四、 阅读算法,回答问题。
1、(15,30,48,50)
2、从初始点Vi出发深度优先搜索遍历由邻接矩阵GA所表示的图。
五、 算法填空,在画有横线的地方填写合适的内容。
p->left=p->right=null
insert(bst->left,item)
insert(bst->right,item)
六、 编写算法
void insert(list&L,int I ,elemtype x)
{
for(int j=L.size-1; j>=I-1; j--)
L.list[j+1]=L.list[j];
L.list[I-1]=x;
L.lize++;
}

时间: 2024-08-01 17:45:49

数据结构笔试题三的相关文章

常见笔试题(三)

11.面向对象的三大特征,并作简单的介绍. 面向对象的三个基本特征是:封装.继承.多态. 封装是面向对象的特征之一,是对象和类概念的主要特性. 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的 数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏.隐藏对象的属性和实现细节,仅对外公开接口,提高代 码安全性,封转程度越高,独立性越强,使用越方便. 继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展. 通过 继承创建的新类称为"子类&q

数据结构笔试题一

第一部分 选择题 (共20分) 一.单项选择题 (本大题共8小题,每小题2分,共16分)   1.某算法的空间花费s(n)=100nlog2n+0.5n1.5+1000n+2000,其空间复杂度为 [    ] A.O(1)                       B.O(n)     C.O(n1.5)                    D.O(nlog2n) 2.在单项链表中删除一个指定结点的后继的时间复杂度为 [    ] A.O(n)                      

Java常见笔试题&lt;三&gt;

1.Servlet的生命周期可以分为初始阶段.运行阶段和销毁阶段,以下属于初始阶段的是: A.加载Servler类以及.calss对应的数据 B.创建servletRequest和servletResponse对象 C.创建ServletConfig对象 D.创建Servlet对象 参考答案:ACD 2.关于Java和C++的比较,说法错误的是: A.Java不支持指针,C/C++支持 B.Java程序不需要显式地关心内存释放,而C/C++需要 C.Java和C++一样,是纯编译语言,因此它们的

数据结构笔试题二

1.C++编成求二叉树的深度: int binTreeDepth(link *head){   int depthl=0,depthr=0;   if(head==null)               return 0;   else{              if ((head->left)!=null)                     depthl = 1 + binTreeDepth(head->left);              if ((head->right)

python笔试题(三)

1.MySQL有哪些存储引擎,优化MySQL数据库的方法有哪些? MySQL支持的存储引擎有MyISAM,InnoDB,Memory,CSV,Archive 创建索引,使用复合索引,使用短索引,不在列上进行运算,不使用NOT IN操作,不在包含有NULL值得列上加索引 2.WEB开发中session与cookie的作用与区别? cookie通过在客户端记录用户身份的信息,session通过在服务端记录用户身份信息 cookie机制:理论上一个用户的所有请求都应该属于一个会话,由于web程序应用是

Java工程师笔试题整理[校招篇]

隔着两个月即将开始校招了.你是不是也想借着这个机会崭露头角,拿到某些大厂的offer,赢取白富美.走上人生巅峰?当然如果你还没能打下Java基础,一定要先打好Java基础:如何一步一步的学Java - 学习编程 - 知乎专栏.然后再来看一下练习一下各大厂的面试笔试题目. 如果以下内容满足不了你,你还可以去看这篇: 2016校招编程题汇总 - 学习编程 - 知乎专栏 进入主要内容(主要内容整理来自牛客网:牛客网)(以下内容按照各大公司进行划分,对每一公司按照年份进行划分,如果想想下载以下内容,可以

2018春招-今日头条笔试题-第三题(python)

题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版) 解题思路: 本题的做法最重要的应该是如何拼出'1234567890',对于输入表达试获得对应的结果利用python内置函数eval()即可以实现.利用5个字符串来表达'1234567890',如下(为了好看,里面加了tab空格符) '66666 ....6 66666 66666 6...6 66666 66666 66666 66666 66666''6...6 ....6 ....6 ....6 6...6 6.... 6

java各公司笔试题集1

IBM笔试题 注:IBM笔试题一小时之内完成,题目全部用英文描述,这里用中文表述 一.名词解释 1.Eclipse 2.J2EE 3.EJB 4.Ajax 5.Web service 二.找出以下代码问题 public class test{ public void print(String str){ char[] s=str: } } public class a{ public static void main(String [] args){ puts() } } 三.写出以下输出 pu

&lt;转&gt;网易2016实习生前端笔试题部分总结

网易2016实习生前端笔试题部分总结 原文地址:http://www.cnblogs.com/venoral/p/5325202.html 这只是部分题,答案为个人观点如有错误欢迎指出,感觉考点都挺基础,但是很注重考细节方面,通过整理也知道自己在CSS3和HTML5,网络知识等方面的不足还是得多学多练多思考.攒rp,希望自己在明天360笔试中能轻松答过~ css 1.多选 //HTML <p>很长的一段文字,很长的一段文字,很长的一段文字,特别长的文字</p> //CSS p{ w