数据结构笔试题一

第一部分 选择题 (共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)                      
B.O(nlog2n)
    
C.O(1)                      
D.O(√n)

3.在n(n>0)个元素的顺序栈中删除1个元素的时间复杂度为 [   
]
  A.O(1)                      
B.O(√n)
    
C.O(nlog2n)                 
D.O(n)

4.对长度为n的字符串进行字符定位运算的时间复杂度为 [   
]
    
A.O(1)                      
B.O(√n)
    
C.O(nlog2n)                 
D.O(n)

5.广义表的深度是 [    ]
    
A.广义表中子表个数           
B.广义表括号个数
    
C.广义表展开后所含的括号层数 D.广义表中元素个数

6.高度为h(h>0)的二叉树最少有________个结点 [   
]
    
A.h                          
B.h-1
    
C.h+1                        
D.2h

7.n个顶点的带权无向连通图的最小生成树包含________个顶点 [   
]
    
A.n-1                        
B.n
    
C.n/2                        
D.n+1

8.冒泡排序在最好情况下时间复杂度为 [    ]
  A.O(1)                      
B.O(nlog2n)
    
C.O(n)                      
D.O(n2)

9.采用拉链法解决冲突的散列表中,查找的平均查找长度 [   
]
     A.直接与关键字个数有关      
B.直接与装填因子a有关
    
C.直接与表的容量有关        
D.直接与散列函数有关

10.经常修改的索引文件宜采用________做索引。
    
A.二叉排序树                
B.满二叉树
    
C.多叉树                    
D.B+树

第二部分 非选择题 (共80分)

二、填空题 (本大题共10小题,每空2分,共20分)

11.某算法需要的辅助空间为s(n)=10log2n+2000/n+5,则该算法的空间复杂度为_______________。
   12.在n个结点的单链表中,在P指向的结点之后插入一个结点的时间复杂度为_______________。
   13.设SQ为循环队列,存储在数组d[m]中,则SQ出队操作对其队头指针front的修改是_______________。
   14.串中所含字符个数称为该串的_______________。
  
15.tail(tail(a,b))=_______________。
  
16.n(n>0)个结点二叉树对应的森林最多包含_______________棵非空树。
   17.深度为n(n>0)的二叉树最多有_______________个结点。
   18.n(n>0)个结点、(n-1)条边的连通无向图中,顶点度数最大值为_______________。
   19.堆排序的空间复杂度_______________。
  
20.倒排文件有_______________和主文件构成。

三、简答题 (本大题共5小题,每小题6分,共30分)
   21.设有函数:
      void fuc(int
n)
      {int
i;
       
for(i=1;i*i*i<=n;i++)
         
prinft("%d",i*i*i);
     
}
     函数fuc饿时间复杂度是多少?

22.把1、2、3、4依次进栈(栈初始为空),任何时刻(只要栈不空),都可以出(退)栈,试写出所有可能的出栈序列(如1234)。

23.若一二叉树有2度结点100个,则其叶结点有多少个?该二叉树可以有多少个1度顶点?

24.请画出广义表D的图形表示
     
D=(D,(a,b),((a,b),c),())

25.有向图(带权)G如下所示:
     试给出用迪杰斯特拉(Dijkstra)算法求上图A到其它各顶点最短路径得到的数组P各元素值(A、B、C、D、E、F编号依次是1、2、3、4、5)。

四、理解题 (本大题共2小题,每小题6分,共12分)

26.指出下面函数f的功能及返回值的含义。
     int f(char s1[],char
s2[])
     {
       int
i=0,j=0;
      
while(s1[i]&&s2[j]){
        
if(s1[i]>s2[j])
          
return 1;
         else
if(s1[i]<s2[j])
          
return -1;
         else
i++,j++;
      
}
      
if(s1[i])
          return
1;
       else
if(s2[j])
          return
-1;
       else return
0;
     }

27.指出下面函数FS的功能。其中,p指向先序线索二叉树的某个结点。
     typedef
enum{LINK,THERAD}flag;
     typedef char
DataType;
     typedef struct
node{
       DataType
data;
       flag
ltag,rtag;
       struct node * lchild, *
rchild;
     }BinNode;
    
BinNode * FS(BinNode *p)
    
{
      
if(p->ltag==LINK)
         return
p->lchild;
      
else
         return
p->rchild;
     }

五、算法填充题 (本大题共1小题,18分)
28.下面函数diff的功能是:根据两个由整数(都大于-32768)按升序构成的单链表L1和L2(分别由A,B指向)构造一个单链表L3(由*r指向),要求L3中的所有整数都是L1并且不是L2中的整数,还要求L3中的所有整数都两两不等。在空缺处填上适当字句,使其能正确工作。
     #include
<malloc.h>
     typedef struct node
{
       int
d;
       struct node
*next
     } Node;
     void diff
(Node *A, Node *B, Node **r)
    
{
       int
lastnum;
       Node *
p;
      
*r=NULL;
      
if(!A)return;
      
while(_____________)
         if
(A->d <
B->d)
           
_____________;
           
p=(Node*) malloc
(sizeof(Node));
           
p->d=lastnum;
           
p->next=*r,_____________;
           
do
A=A->next;while(_____________);
        
}
         else if (A->d >
B->d)
           
B=B->next
         else
{
             
_____________;lastnum=A->d;
             
while
(A&&A->d==lastnum)A=A->next;
           
}
        while (A)
{
         
lastnum=A->d;
         
p=(Node*) malloc
(sizeof(Node));
         
p->d=lastnum;
        
_____________,*r=p;
         while
(A&&A->d==lastnum)
A=A->next;
      
}
     }

时间: 2024-08-30 14:08:11

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

数据结构笔试题三

[微笑天使收集整理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->n

数据结构笔试题二

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)

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

史上最难PHPer笔试题,40分就能月薪过万!附答案

请批判性的学习,欢迎大牛指正错误 1.有关PHP字符串的说法,不对的是:A.如果一个脚本的编码是 ISO-8859-1,则其中的字符串也会被编码为 ISO-8859-1.B.PHP的字符串在内部是字节组成的数组,用花括号访问或修改字符串对多字节字符集很不安全.C.substr().strpos().strlen().htmlentities() 处理字符串时依据的编码方式是相同的.D.一个布尔值 Boolean 的 true 被转换成 string 的 " 1 ",false 被转换成

IT笔试题

史上最发散的软件工程师笔试题 1.请编写代码实现如下逻辑:有一只猫和多只老鼠,猫叫了一声,老鼠都吓跑了. 2.请介绍一种数据结构和算法,代表你在这个领域的能力. 3.请从正反两面介绍一下你对代码质量的看法,什么样的代码称得上写的漂亮,什么样的代码写的糟糕. 4.请介绍一种设计模式,代表你在这个领域的能力.

笔试题系列001

测试笔试题类型:软件测试| 试题:55道试题(50道选择题,5道问答题)http://bbs.sjtu.edu.cn/bbsanc,path,%2Fgroups%2FGROUP_9%2FJobInfo%2FD7CD26755%2FD85486036%2FM.1131274669.A.html http://202.197.191.206:8080/38/text/test/test_2/shijuan2.htm 软件工程 http://test.examw.com/410/P6517/一.单选题

2013谷歌笔试题

个人信息:就读于燕大本科软件工程专业 目前大四; 本人博客:google搜索"cqs_2012"即可; 个人爱好:酷爱数据结构和算法,希望将来从事算法工作为人民作出自己的贡献; 编程语言:C++ ; 编程坏境:Windows 7 专业版 x64; 编程工具:vs2010; 制图工具:office 2010 powerpoint; 硬件信息:7G-3 笔记本; 题目 写函数,输出前N个素数.不需要考虑整数溢出问题,也不需要使用大数处理算法. 思路 个人思路对每个奇数去检验是否是素数,检验

C/C++ 笔试题一

摘自 网络上的 笔试题,据说是华为的,考察的内容还算全面,也很细致: 答案 疏略 检查了下,应该没有什么大问题,但是 还是那句话,尽信之不如无,所以还是要自己思考 1.static有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变. 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所有函数访问,但不能被模块外其它函数访问.它是一个本地的全局变量. 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用.那就是,这