浙江大学数据结构考研试题
浙大计算机面试题库及答案

浙大计算机面试题库及答案一、算法与数据结构1. 请简述什么是最短路径算法,并列举几种常见的最短路径算法。
最短路径算法是用来寻找两个节点之间最短路径的一种算法。
常见的最短路径算法包括迪杰斯特拉算法(Dijkstra)、弗洛伊德算法(Floyd-Warshall)、贝尔曼-福特算法(Bellman-Ford)等。
2. 请解释什么是动态规划,并简要介绍动态规划的实现步骤。
动态规划是将一个大问题分解为若干个子问题,并通过保存子问题的解来降低求解复杂度的一种算法思想。
实现步骤包括定义状态、确定状态转移方程、确定初始条件和计算顺序。
二、操作系统1. 什么是进程和线程,它们之间有什么区别?进程是操作系统中资源分配的最小单位,是运行程序的载体,拥有独立的内存空间和执行环境;而线程是进程中的一个执行单元,与其他线程共享进程的资源,拥有独立的执行流程。
区别:- 进程间资源相互独立,线程间资源共享;- 进程拥有独立的地址空间,线程共享进程的地址空间;- 进程间切换开销比较大,线程间切换开销较小。
2. 请解释什么是死锁,并列举避免死锁的方法。
死锁是指系统中的进程或线程因为互相等待对方所持有的资源而无法继续执行的一种状态。
避免死锁的方法包括:资源分级法、资源有序性法、银行家算法、避免环路法等。
三、网络1. 简述HTTP和HTTPS的区别。
HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议,明文传输,安全性较低;而HTTPS(Hypertext Transfer Protocol Secure)是基于HTTP协议的一种安全的传输协议,通过SSL/TLS加密数据传输,保证数据的安全性。
2. 请解释什么是TCP/IP协议栈,并介绍TCP和UDP的区别。
TCP/IP协议栈是一组用于互联网中数据通信的网络协议的集合。
它由多层协议构成,包括物理层、数据链路层、网络层、传输层和应用层。
TCP(Transmission Control Protocol)是一种面向连接、可靠传输的协议,提供错误检测和重传机制,适用于对数据可靠性要求较高的场景;而UDP(User Datagram Protocol)是一种无连接、不可靠传输的协议,不提供错误检测和重传机制,适用于对实时性要求较高的场景。
数据结构c考研试题及答案

数据结构c考研试题及答案数据结构C考研试题及答案1. 选择题1.1 以下哪个选项不是线性表的顺序存储结构的特点?A. 存储空间连续B. 存储空间不连续C. 可以随机访问D. 插入和删除操作效率低答案:B1.2 在二叉树的遍历中,先访问根节点,然后遍历左子树,最后遍历右子树,这种遍历方式称为:A. 前序遍历B. 中序遍历C. 后序遍历D. 层序遍历答案:A2. 填空题2.1 在一个长度为n的数组中,使用二分查找法查找一个元素,最坏情况下需要比较的次数为______。
答案:log2(n+1)-12.2 哈希表的冲突解决方法有多种,其中一种方法是______。
答案:链地址法3. 简答题3.1 请简述图的深度优先搜索(DFS)算法的步骤。
答案:深度优先搜索算法的步骤如下:1. 访问起始顶点;2. 对于起始顶点的每一个邻接顶点,如果未被访问,则递归地进行深度优先搜索;3. 继续对未访问的邻接顶点进行步骤2,直到所有邻接顶点都被访问;4. 回溯到上一个顶点,继续访问未访问的邻接顶点,直到所有顶点都被访问。
3.2 什么是堆排序算法?请简要描述其工作原理。
答案:堆排序算法是一种基于二叉堆的比较排序算法。
其工作原理如下:1. 将待排序的序列构造成一个大顶堆;2. 将堆顶元素,即当前最大值,与序列末端元素进行交换,然后将序列长度减一;3. 对新的堆顶元素调整为新堆的堆顶;4. 重复步骤2和3,直到堆的大小为1或0。
4. 编程题4.1 编写一个函数,实现单链表的反转。
答案:```cstruct ListNode {int val;struct ListNode *next;};struct ListNode* reverseList(struct ListNode* head) {struct ListNode* prev = NULL;struct ListNode* curr = head;struct ListNode* next = NULL;while (curr != NULL) {next = curr->next;curr->next = prev;prev = curr;curr = next;}head = prev;return head;}```4.2 给定一个二叉搜索树的根节点,请实现一个函数,返回树中任意两个节点的值的差的绝对值的最小值。
数据结构 排序 历年考研练习题库 试卷及答案

第10章排序及答案后面红色部分一、选择题1.某内排序方法的稳定性是指( )。
【南京理工大学 1997 一、10(2分)】A.该排序算法不允许有相同的关键字记录 B.该排序算法允许有相同的关键字记录C.平均时间为0(n log n)的排序方法 D.以上都不对2.下面给出的四种排序法中( )排序法是不稳定性排序法。
【北京航空航天大学 1999 一、10 (2分)】A. 插入B. 冒泡C. 二路归并D. 堆积3.下列排序算法中,其中()是稳定的。
【福州大学 1998 一、3 (2分)】A. 堆排序,冒泡排序B. 快速排序,堆排序C. 直接选择排序,归并排序D. 归并排序,冒泡排序4.稳定的排序方法是()【北方交通大学 2000 二、3(2分)】A.直接插入排序和快速排序 B.折半插入排序和起泡排序C.简单选择排序和四路归并排序 D.树形选择排序和shell排序5.下列排序方法中,哪一个是稳定的排序方法?()【北方交通大学 2001 一、8(2分)】A.直接选择排序 B.二分法插入排序 C.希尔排序 D.快速排序6.若要求尽可能快地对序列进行稳定的排序,则应选(A.快速排序 B.归并排序 C.冒泡排序)。
【北京邮电大学 2001 一、5(2分)】7.如果待排序序列中两个数据元素具有相同的值,在排序前后它们的相互位置发生颠倒,则称该排序算法是不稳定的。
()就是不稳定的排序方法。
【清华大学 1998 一、3 (2分)】A.起泡排序 B.归并排序 C.Shell排序 D.直接插入排序 E.简单选择排序8.若要求排序是稳定的,且关键字为实数,则在下列排序方法中应选()排序为宜。
A.直接插入 B.直接选择 C.堆 D.快速 E.基数【中科院计算所 2000 一、5(2分)】9.若需在O(nlogn)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方2法是()。
A. 快速排序B. 堆排序C. 归并排序D. 直接插入排序【中国科技大学 1998 二、4(2分)】【中科院计算所 1998 二、4(2分)】10.下面的排序算法中,不稳定的是()【北京工业大学 1999 一、2 (2分)】A.起泡排序B.折半插入排序C.简单选择排序D.希尔排序E.基数排序F.堆排序。
浙江大学复试面试题目及答案(yyy版本)

浙江大学计算机考研历年面试问题集专业部分操作系统部分:1 windows/linux使用的文件系统?windows使用的文件系统有:FAT(包括FAT12,FAT16,FAT32),CDFS,UDF,NTFS,DFS(分布式文件系统,用于windows2000/xp服务器上的网络组件)linux使用的文件系统有:ext2,ext3,FAT32 ???????2 虚拟内存?传输协调工作,并为用户提供一个统一的界面和标准的接口,用户通过这一界面实现所需要的从操作以及使用系统资源,使系统中的若干台计算机相互协作以完成共同的任务,有效控制和协调诸任务的并行执行,并向系统提供统一的,有效的接口软件集合。
网络操作系统和分布式操作系统虽然都属于管理分布在不同地理位置上的操作系统,但最大的差别是:网络操作系统工作时必须确认网址,而分布式操作系统则不必知道计算机的确切地址;分布式系统负责整个系统的资源分配,通常能够很好的隐藏系统的内部细节,如对象的物理位置,并发控制,系统故障等。
这些对用户都是透明的。
8 操作系统为什么要用驱动程序?参考912 io调度算法?此题似乎有问题,分解之:IO控制方式:程序IO方式,中断驱动IO控制方式,DMA直接存储器访问方式,IO通道控制方式磁盘调度算法:RSS(随机调度),FIFO,PRI(进程优先级调度),LIFO,SSTF(最短作业优先),SCAN (在磁盘上往复),C-SCAN(一条道路,快速返回),N-step- SCAN(一次N个记录的SCAN),FSCAN13 一个文件重命名和把它直接删除后再重新建立新文件名有何不同?1.物理地址:前者不变,后者变化2.pcb:前者只改了文件名,后者重新建立PCB14 介绍一下os的层次结构?●多数据流:文件的实际内容被当作字节流处理,在NTFS中可以为一个文件定义多个数据流;●通用索引功能:NTFS中,每个文件都有一组属性与之关联.这样,文件管理系统中文件描述的集合组织成一个关系数据库,因而文件可以建立关于任何属性的索引.20 轮转法知道么,用在什么系统?简单介绍下分时操作系统,时间片可等长——简单轮转调度,亦可不等长——多级反馈调度数据结构部分:1 介绍分治算法,回溯算法,动态规划法?弃,其余儿子节点被加入到活节点表中。
浙大软院资料-17878真题回忆版

17年浙大软院878试题良心回忆版~ 历年15、16年的题目,我一直没找到(14年起878不对外公布了)。
苦于那会自己连分值题型都不清楚,所以这里和另一位胡同学,仔细分析整理出了这一份资料,希望能给后面考878的同学带来帮助吧~数据结构(共90分)一、选择题(20题,每题2分,共40分)1.判断O(N3)、O(NlogN)、O(N(logN)3)、O(N2logN)的增速那个最快。
2.若有一颗完美二叉排序树,问选项中错误的性质描述。
3.给了一个AVL树的建树序列,判断选项中错误的是4.11年真题的11题,关于无向有权图的性质5.,此图的拓扑序列有几个?6.若有两个叶子结点是A和B,则问前中后序序列里,A和B的相对位置。
7.堆排序、快速排序、归并排序的需要的辅助空间大小排序?8.给出原始序列,第一趟序列,第二趟序列。
问是什么排序9.一个有N个结点的无向图,所有结点的度数为节点数的多少倍?10.一个三叉树,N1=5,N2=3,N3=2。
问N0=?11.给了一个最小堆,问删了两个元素之后,堆的层序遍历。
二、大题(50分)1、给出一个有权无向图,问深度遍历序列、广度遍历序列、最小生成树及其权值。
(18分)2、哈希动态排序题,给出一个序列,将其放入容量为13的哈希表中,H(key)=key%13,用线性探测的方式处理冲突。
(12分)(1).填表,将所给序列填入表中。
(2).在第一次发生冲突的时候,表的装填因子是什么。
3. 程序填空题,要求利用堆排序将一个数列A[N]排列成非递减序列。
(12分,共3空)(已经在历年真题中出现不少于3次了)4.编程题,编一个程序void(tree T,int X),作用是在二叉排序树T中找到比X大的数,并以非递增的方式打印出来。
(8分)C语言(共60分)一、选择题(15道,每题2分,共30分)二、分析题(5道,每题6分,共30分)此部分的前4题是读程序,写结果。
第5题是程序填空,3分,每空2分。
算法与数据结构考研试题精析(第二版)第10章 排序

第10章排序一、选择题1.某内排序方法的稳定性是指( )。
【南京理工大学 1997 一、10(2分)】A.该排序算法不允许有相同的关键字记录 B.该排序算法允许有相同的关键字记录C.平均时间为0(n log n)的排序方法 D.以上都不对2.下面给出的四种排序法中( )排序法是不稳定性排序法。
【北京航空航天大学 1999 一、10 (2分)】A. 插入B. 冒泡C. 二路归并D. 堆积3.下列排序算法中,其中()是稳定的。
【福州大学 1998 一、3 (2分)】A. 堆排序,冒泡排序B. 快速排序,堆排序C. 直接选择排序,归并排序D. 归并排序,冒泡排序4.稳定的排序方法是()【北方交通大学 2000 二、3(2分)】A.直接插入排序和快速排序 B.折半插入排序和起泡排序C.简单选择排序和四路归并排序 D.树形选择排序和shell排序5.下列排序方法中,哪一个是稳定的排序方法?()【北方交通大学 2001 一、8(2分)】A.直接选择排序 B.二分法插入排序 C.希尔排序 D.快速排序6.若要求尽可能快地对序列进行稳定的排序,则应选(A.快速排序 B.归并排序 C.冒泡排序)。
【北京邮电大学 2001 一、5(2分)】7.如果待排序序列中两个数据元素具有相同的值,在排序前后它们的相互位置发生颠倒,则称该排序算法是不稳定的。
()就是不稳定的排序方法。
【清华大学 1998 一、3 (2分)】A.起泡排序 B.归并排序 C.Shell排序 D.直接插入排序 E.简单选择排序8.若要求排序是稳定的,且关键字为实数,则在下列排序方法中应选()排序为宜。
A.直接插入 B.直接选择 C.堆 D.快速 E.基数【中科院计算所 2000 一、5(2分)】9.若需在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是()。
A. 快速排序B. 堆排序C. 归并排序D. 直接插入排序【中国科技大学 1998 二、4(2分)】【中科院计算所 1998 二、4(2分)】10.下面的排序算法中,不稳定的是()【北京工业大学 1999 一、2 (2分)】A.起泡排序B.折半插入排序C.简单选择排序D.希尔排序E.基数排序F.堆排序。
2019年浙大数据结构真题整理

19年浙大数据结构真题整理-----木君,群内相关讨论及资源数据结构:1. 选择题1.选出算法时间最快()(C 其中logN与N不在一个数量级)A. O(n^2)B. O(n^3)C. O(n(log N)^4)D. O(n^3/2)2.不是链表所具有的特性()(A)A.可以随意查找B.插入删除的复杂度为O(1)3.判断栈的出栈顺序,是否正确()(王道常见题型)4.中序和后序的结果一样的,则该树所具有的特征()(王道常见题型)5.78,85,120,65,61...的序列排成AVL树,其中不正确的描述()(该题还是AVL树的平衡)A.是一棵完全二叉树B.x是根节点C.其中a,b是兄弟结点6.拓扑排序(王道)7.进行一趟快排后,形成的新的序列(王道)8.有2333个数的最小堆,最大值不可能在下面的哪个节点上()A. 1113B.1556 C…(王道,非叶子结点即可)9.给出一张图,找出最小生成树,(王道,建议使用,kruskal算法)10.(a,b,c,d),a,b是最小频率使用的两个结点,不可能出现的编码()C c:10 d:011.给出邻接表,判断它的深度遍历顺序()(这题不是很会处理,感觉每个选项都像对)12.广度搜索13.20,25,16,7,96…….。
进行一趟,排序问选择哪种()A.堆排序B.快排C.二路并归 (20)2. 简答题1.1给定一串数,将他们排列成一棵完全二叉树,并保证该树是一棵二叉搜索树。
1.2并对上述的二叉树进行前序遍历2.给出一个图,用dijkstra算法求最短路径,要求写出查找的序列以及距离起始点的最短距离。
3.程序填空进行最大堆进行调整,主要是if语句的调整。
(往年真题出现过)(思路)主要的if()语句的判断,判断内容属于对一个节点的左右孩子的比较,选出最大的那个孩子,以便进行下一个if的判断,对当前节点和刚刚最大的孩子的比较。
3.编程题是将单链表进行新的排序,如123456,转变为615243,时间复杂度O(n),空间复杂度O(1),。
浙大计算机面试题及答案

浙大计算机面试题及答案一、数据结构与算法1. 请解释什么是数据结构,并列举几种常见的数据结构。
数据结构是计算机中对数据的组织、存储和管理的方式。
常见的数据结构包括数组、链表、堆栈、队列、树、图等。
2. 请解释什么是算法,并列举几种常见的算法。
算法是解决问题的一系列步骤或指令。
常见的算法包括排序算法(如冒泡排序、快速排序)、查找算法(如二分查找)、图算法(如最短路径算法)等。
3. 请解释什么是时间复杂度和空间复杂度。
时间复杂度是衡量算法执行时间随输入规模增长而增长的速度。
常用的时间复杂度有O(1)(常数时间复杂度)、O(log n)(对数时间复杂度)、O(n)(线性时间复杂度)、O(n^2)(平方时间复杂度)等。
空间复杂度是衡量算法执行所需内存空间随输入规模增长而增长的速度。
常用的空间复杂度有O(1)(常数空间复杂度)、O(n)(线性空间复杂度)等。
4. 请解释什么是动态规划算法,并给出一个实际的应用场景。
动态规划是将复杂问题分解为子问题,并记录子问题的解,避免重复计算,从而提高算法效率的一种算法思想。
一个实际的应用场景是求解最长公共子序列问题,即找出两个序列中最长的公共子序列。
5. 请解释什么是贪心算法,并给出一个实际的应用场景。
贪心算法是一种每步选择当前最优解的算法思想。
一个实际的应用场景是求解零钱找零问题,即用最少数量的硬币找零。
二、操作系统与网络1. 请解释什么是操作系统,并列举几种常见的操作系统。
操作系统是计算机系统的核心软件,负责管理计算机硬件资源、提供用户接口和运行应用程序等。
常见的操作系统有Windows、Linux、Unix、macOS等。
2. 请解释什么是进程和线程,并解释二者的区别。
进程是程序在操作系统中的一次执行过程,具有独立的地址空间和资源。
线程是进程的一个执行单元,多个线程共享进程的资源。
区别在于进程是独立的执行单位,而线程是进程内的执行单位。
3. 请解释什么是虚拟内存,并解释其作用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
五、一带权无向图的邻接矩阵如右图 ,试画出它的一棵最小生成树。(8分)
六、广义表的结点定义如下:(12分) TYPE point =↑ node; node=RECORD tag: 0..1; tp:point;
CASE
tag OF 0: (data: datatype); 1: (hp:point)
浙江大学 1994年考研题
一、完成下列各题(每题 5 分) 1.已知 a,b为TRUE ,X=60,i=3,j=5. 求PASCAL表达式a AND NOT (X>5) AND (i>j +5) OR a>b AND b 的 值。 的PASCAL 或C语言的相应语句。 2.写出计算 3.设计一数据结构,用来表示某一银行储户的基本信息:账号、姓名、开户年月日、储蓄类型 、存入累 加数、利息、帐面总数。 二、 设计-PASCAL 或C语言的函数 atoi(x).其中X 为字符串, 由0--9 10个数字符和表示正负数的‘-’组成, 返回值为整型树值(7分) 三、对于-维树组 a (ARRAY [1..20] OF INTEGER ) 有下列PASCAL 程序:(8分) PROCEDURE S(x,t,b:INTEGER); VAR m:INTEGER BEGIN IF t<=THEN BEGIN m:=(t+b) DIV 2 IF x=a[m] THEN writeln (x,m)] ELSE IF x<a[m] THEN S(x,t,m-1) ELSE IF X>Am] THEN S (x,m+1,b) END ELSE writeln ('NO') END. 试说明该过程S(x,t,b)的功用,若已知a 的内容为: 11 14 15 18 19 21 24 33 45 55 49 55 62 71 78 83 85 91 94 97 请指出S(33,1,20)和S(35,1,20)调用时输出结果。 四、设有大小为mxm的二维数组(方阵),试设计下列程序(PASCAL或C);(20分) 1.作出该数组的统计方图(即统计各种数值出现的次数)。 2.变换该方阵,中每一元素被它的8个邻域的平均数所代替。 (附:元素A的8个邻域定义为a0---a7 见下图
END; lists= point; 说明下列算法的功能,并画出执行该算法后,P 所指向的广义表结构。 (算法中p, t, m, n, r, q 均为指针)
A(p,t) begin q:=NIL; while p<>NIL do begin if p↑.tag <> 0 then begin m:=p↑.hp; A(m,n); p↑p:=n end; r:=p↑.tp; p↑.tp:=q; q:=p; p:=r end; t :=q; end. 七、一棵二叉树的结点定义如下:(12分) typedef struct node node; struct node { kind key: node * link [2]; } typedef struct frame frame; struct frame { boolean left; node * ptr; }; frame nodepath[4]; # define path(j) nodepath[ (j)&4]
试画出执行如下程序后右图所示的二叉树形状, 其中 paห้องสมุดไป่ตู้h(j) 的初值为: j path(j).ptr i-1 a i b i+1 d i+2 e
path(j).left ---------false false true
void R (i) int i { path (i+1).ptr->link [path(i+2).left]=path(i+2) .ptr ->link [path (i+2).left]; path (i-2) .ptr-> link[path(i+2) .left]=path (i-1) .ptr ; path (i).ptr -> link[path (i+1).left ] =path (i+2) .ptr; path (i+1).ptr =path(i+2).ptr; } 八、数组 H[ 1:1000] 中存放着1000个大小不同的正整数; (18分) 1.选择一分类算法使能最快的得到其中10个最大的数,简要说明理由; 2.编写一程序Beek0 , 执行该程序时,在命令行中提供2个参数 &beek--an<enter> 表示需打印H[ ] 中n个最大数。 &beek --in <enter>表示需打印H[ ] 中n 个最小数。
浙江大学 1995 年考研题
一、设数据文件的内容如下(其中*为空格符) : (10 分) 1 8 * * *2 8 A * * * 4 * *1 0 0 * * * * B 3:* * * * * -8 变量说明为;x,y,z:integer; ch:char; 试回答分别执行下面的输入语言后,变量的值。 1.read(x); read(y); read(ch); 2.readln(x); readln(y); readln(ch); 3.readln(x); readln(y,ch); read(z); 4.read(ch); readlnl ; read(x); 二、执行下面的程序,程序的输出是什么?(6 分) program test(out put); var x,,n,i:integer; procedure sub; begin n:=0; i:=1; while i<=x do begin n:=n-1; i:=i-2 end end; procedure sub2 begin i:=n; n:=x; x:=i end; begin x:=5; sub1:=sub2; sub1;sub2; writeln(x) end. 三、考虑函数说明(8 分) function f(x,y: real):real; begin if x>=y then f:=(x+y)/2 else f:=f(f(x+z,y-1), f(x+1, y-2) end; 求 f(1,10)的值。