计算机笔试题库及答案_第1页
计算机笔试题库及答案_第2页
计算机笔试题库及答案_第3页
计算机笔试题库及答案_第4页
计算机笔试题库及答案_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机笔试题库及答案一、选择题(每题2分,共40分)1.下列哪种数据结构是非线性结构?A.栈B.队列C.树D.数组2.在操作系统中,进程调度的主要目的是什么?A.提高CPU利用率B.提高内存利用率C.提高I/O设备利用率D.提高磁盘利用率3.下列哪个协议是用于在互联网上传输网页的?A.FTPB.HTTPC.SMTPD.Telnet4.数据库中,关系模型的基本数据结构是:A.树B.图C.表D.队列5.下列哪种排序算法的时间复杂度在最坏情况下是O(n²)?A.快速排序B.归并排序C.堆排序D.冒泡排序6.在面向对象编程中,封装的主要目的是:A.提高代码复用性B.提高安全性C.提高可读性D.提高执行效率7.下列哪个不是计算机网络OSI模型的七层之一?A.物理层B.网络层C.传输层D.应用层8.在数据库系统中,事务的ACID特性不包括:A.原子性(Atomicity)B.一致性(Consistency)C.隔离性(Isolation)D.可靠性(Dependability)9.下列哪种数据结构适合实现LRU缓存淘汰算法?A.数组B.链表C.哈希表D.双向链表+哈希表10.操作系统中,死锁产生的必要条件不包括:A.互斥条件B.请求与保持条件C.不可剥夺条件D.循环等待条件E.资源分配条件11.下列哪个是TCP/IP模型中的应用层协议?A.IPB.TCPC.UDPD.HTTP12.在关系数据库中,主键的特点不包括:A.唯一性B.非空性C.可更新性D.最小性13.下列哪种算法是贪心算法的典型应用?A.快速排序B.Dijkstra最短路径算法C.归并排序D.动态规划14.在操作系统进程管理中,进程的状态不包括:A.就绪状态B.运行状态C.等待状态D.终止状态E.挂起状态15.下列哪个不是NoSQL数据库?A.MongoDBB.RedisC.MySQLD.Cassandra16.在数据结构中,平衡二叉树的主要目的是:A.提高查找效率B.提高插入效率C.提高删除效率D.以上都是17.下列哪个不是常见的哈希冲突解决方法?A.开放地址法B.链地址法C.再哈希法D.直接定址法18.在计算机网络中,DNS的主要功能是:A.管理网络流量B.分配IP地址C.域名解析D.网络安全防护19.在数据库设计中,第三范式(3NF)的主要目的是:A.消除部分函数依赖B.消除传递函数依赖C.消除多值依赖D.消除连接依赖20.下列哪种算法的时间复杂度是O(nlogn)?A.冒泡排序B.选择排序C.插入排序D.归并排序答案:1.C:树是非线性数据结构,而栈、队列和数组都是线性数据结构。树中的元素之间存在一对多的关系,而线性数据结构中的元素之间存在一对一的关系。2.A:进程调度的主要目的是提高CPU的利用率,通过合理地分配CPU时间给各个进程,确保CPU资源得到充分利用,提高系统的整体性能。3.B:HTTP(HyperTextTransferProtocol)是用于在互联网上传输网页的协议。FTP是文件传输协议,SMTP是简单邮件传输协议,Telnet是远程登录协议。4.C:关系模型的基本数据结构是表(也称为关系),由行和列组成。树和图是层次模型和网状模型的基本数据结构,队列是一种线性数据结构。5.D:冒泡排序在最坏情况下的时间复杂度是O(n²)。快速排序、归并排序和堆排序的平均时间复杂度都是O(nlogn),但在最坏情况下,快速排序的时间复杂度是O(n²)。6.B:封装的主要目的是提高安全性,通过隐藏对象的内部状态和实现细节,只对外提供必要的接口,防止外部代码随意访问和修改对象的内部数据。7.无:OSI模型的七层分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。题目中的选项都是OSI模型的七层之一,所以没有正确答案。8.D:事务的ACID特性包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),不包括可靠性(Dependability)。9.D:双向链表+哈希表是实现LRU缓存淘汰算法的常用数据结构。哈希表用于快速访问元素,双向链表用于维护元素的访问顺序,当需要淘汰元素时,直接淘汰链表尾部的元素即可。10.E:死锁产生的必要条件包括互斥条件、请求与保持条件、不可剥夺条件和循环等待条件,不包括资源分配条件。11.D:HTTP是TCP/IP模型中的应用层协议。IP是网络层协议,TCP和UDP是传输层协议。12.C:主键的特点包括唯一性、非空性和最小性,不包括可更新性。主键的值通常是不可更新的,以确保其唯一性。13.B:Dijkstra最短路径算法是贪心算法的典型应用。快速排序和归并排序是分治算法,动态规划是一种算法设计范式。14.E:进程的状态包括就绪状态、运行状态和等待状态(或称为阻塞状态),不包括终止状态和挂起状态。终止状态是进程执行结束后的状态,挂起状态是进程的一种特殊状态,但不是基本状态。15.C:NoSQL数据库包括MongoDB、Redis和Cassandra,而MySQL是关系型数据库,不是NoSQL数据库。16.D:平衡二叉树的主要目的是提高查找、插入和删除操作的效率,通过保持树的平衡,确保树的高度最小化,从而提高各种操作的效率。17.D:常见的哈希冲突解决方法包括开放地址法、链地址法和再哈希法,直接定址法不是哈希冲突的解决方法,而是一种哈希函数的构造方法。18.C:DNS(DomainNameSystem)的主要功能是域名解析,将域名转换为IP地址。网络流量管理、IP地址分配和网络防护是其他网络服务的功能。19.B:第三范式(3NF)的主要目的是消除传递函数依赖。第一范式(1NF)用于消除部分函数依赖,第二范式(2NF)用于消除传递函数依赖,第三范式(3NF)用于消除传递函数依赖。20.D:归并排序的时间复杂度是O(nlogn)。冒泡排序、选择排序和插入排序的时间复杂度都是O(n²)。二、填空题(每空2分,共30分)1.在数据结构中,栈的特点是________,队列的特点是________。2.操作系统中,进程间通信的常见方式有管道、________、________和消息队列。3.计算机网络中,TCP协议是面向________的,而UDP协议是面向________的。4.在关系数据库中,SQL语言的主要功能包括数据查询、________、________和数据控制。5.算法的时间复杂度通常用大O符号表示,常见的时间复杂度有O(1)、O(n)、O(n²)、O(nlogn)和________。6.在面向对象编程中,多态性的实现方式有函数重载和________。7.操作系统中,文件系统的组织方式有顺序文件、________、________和索引文件。8.在数据库系统中,索引的类型包括B树索引、________、________和位图索引。9.计算机网络中,IP地址分为IPv4和IPv6,IPv4地址由________位二进制数组成,而IPv6地址由________位二进制数组成。10.在数据结构中,图的最小生成树算法有Prim算法和________。答案:1.在数据结构中,栈的特点是后进先出(LIFO),队列的特点是先进先出(FIFO)。2.操作系统中,进程间通信的常见方式有管道、共享内存、信号量和消息队列。3.计算机网络中,TCP协议是面向连接的,而UDP协议是无连接的。4.在关系数据库中,SQL语言的主要功能包括数据查询、数据操作、数据定义和数据控制。5.算法的时间复杂度通常用大O符号表示,常见的时间复杂度有O(1)、O(n)、O(n²)、O(nlogn)和O(2^n)。6.在面向对象编程中,多态性的实现方式有函数重载和函数重写(或覆盖)。7.操作系统中,文件系统的组织方式有顺序文件、索引文件、直接文件和哈希文件。8.在数据库系统中,索引的类型包括B树索引、哈希索引、全文索引和位图索引。9.计算机网络中,IP地址分为IPv4和IPv6,IPv4地址由32位二进制数组成,而IPv6地址由128位二进制数组成。10.在数据结构中,图的最小生成树算法有Prim算法和Kruskal算法。三、判断题(每题1分,共10分)1.在操作系统中,进程是程序的一次执行,而线程是进程内的一个执行单元。()2.在关系数据库中,一个表可以有多个主键。()3.快速排序在最坏情况下的时间复杂度是O(n²)。()4.TCP协议提供可靠的数据传输,而UDP协议不提供可靠传输。()5.在面向对象编程中,封装是指隐藏对象的属性和实现细节,仅对外提供公开接口。()6.操作系统中,死锁是指多个进程因竞争资源而造成的一种互相等待的僵局。()7.在计算机网络中,HTTP协议默认使用80端口,HTTPS协议默认使用443端口。()8.数据库中的视图是物理存在的表。()9.在数据结构中,堆是一种特殊的树形数据结构,通常用于实现优先队列。()10.操作系统中,分页和分段都是内存管理技术,分页是以页为单位分配内存,分段是以段为单位分配内存。()答案:1.正确。在操作系统中,进程是程序的一次执行,而线程是进程内的一个执行单元,是CPU调度的基本单位。2.错误。在关系数据库中,一个表只能有一个主键,但可以有多个候选键。3.正确。快速排序在最坏情况下的时间复杂度是O(n²),例如当输入数组已经有序或逆序时。4.正确。TCP协议提供可靠的数据传输,通过确认机制、重传机制和流量控制等确保数据的完整性和有序性;而UDP协议不提供可靠传输,但具有传输效率高的特点。5.正确。封装是面向对象编程的基本特性之一,指的是隐藏对象的属性和实现细节,仅对外提供公开接口,以保护对象内部状态不被外部随意访问和修改。6.正确。死锁是操作系统中的一个重要问题,指多个进程因竞争资源而造成的一种互相等待的僵局,所有进程都在等待其他进程释放资源,导致所有进程都无法继续执行。7.正确。HTTP协议默认使用80端口,HTTPS协议默认使用443端口,这是互联网标准的端口号。8.错误。数据库中的视图是虚拟的表,不实际存储数据,而是基于基本表的一个逻辑表示,动态生成查询结果。9.正确。堆是一种特殊的树形数据结构,通常用于实现优先队列,其中堆顶元素总是具有最高(或最低)优先级的元素。10.正确。分页和分段都是内存管理技术,分页是以固定大小的页为单位分配内存,分段是以可变大小的段为单位分配内存。四、简答题(每题10分,共60分)1.请简述数据库事务的ACID特性及其含义。2.解释什么是操作系统中的虚拟内存技术,并说明其优点。3.简述TCP三次握手的过程,并解释为什么需要三次握手而不是两次。4.请解释什么是面向对象编程中的继承,并说明其优点和缺点。5.简述数据库中索引的工作原理及其优缺点。6.解释什么是计算机网络中的子网划分,并说明其目的。答案:1.数据库事务的ACID特性及其含义:原子性(Atomicity):事务是一个不可分割的工作单位,事务中的操作要么全部执行,要么全部不执行。如果事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从未执行过一样。一致性(Consistency):事务必须使数据库从一个一致性状态转变到另一个一致性状态。也就是说,事务执行的结果必须是使数据库处于一致的状态,不会破坏数据库的完整性约束。隔离性(Isolation):一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。持久性(Durability):一旦事务被提交,它对数据库中数据的改变就是永久性的,即使系统发生故障也不会丢失。持久性是通过数据库的日志和恢复机制来保证的。2.操作系统中的虚拟内存技术及其优点:虚拟内存是一种内存管理技术,它使得应用程序认为它拥有连续的可用内存空间,而实际上,它通常是被分隔成多个物理内存碎片,还有部分存储在外部磁盘存储器上,当需要时进行数据交换。虚拟内存技术通过页表或段表将虚拟地址映射到物理地址。虚拟内存技术的优点包括:-扩大了内存容量:使得程序可以使用的内存空间大于物理内存的实际容量。-实现了内存共享:多个进程可以共享同一个物理内存页面,提高了内存利用率。-实现了内存保护:通过页表中的权限位,可以防止进程访问其他进程的内存空间或操作系统的内核空间。-简化了程序设计:程序员不需要关心内存的物理地址分配,可以按照逻辑地址编写程序。-提高了系统的可靠性:通过页面置换算法,可以将不常用的页面置换到磁盘上,释放内存空间给其他进程使用。3.TCP三次握手的过程及原因:TCP三次握手的过程如下:-第一次握手:客户端向服务器发送一个SYN包,并包含一个初始序列号seq=x,客户端进入SYN_SENT状态,等待服务器确认。-第二次握手:服务器收到SYN包,必须确认客户端的请求,同时自己也发送一个SYN包,即SYN+ACK包,其中ack=x+1,seq=y,服务器进入SYN_RCVD状态。-第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送一个确认包ACK,其中ack=y+1,seq=x+1,客户端进入ESTABLISHED状态,服务器收到ACK后也进入ESTABLISHED状态,完成三次握手。需要三次握手而不是两次的原因主要是为了防止已失效的连接请求报文突然又传送到了服务器,从而产生错误。具体来说:-第一次握手:客户端发送SYN包,但由于网络原因,这个SYN包在网络中滞留了,客户端没有收到服务器的确认,于是客户端重新发送了一个SYN包,这次服务器正确收到了并建立了连接,数据传输完成后关闭了连接。-这时,那个滞留的SYN包又到达了服务器,服务器以为是客户端又发起了一个新的连接,于是向客户端发送SYN+ACK包。-如果只有两次握手,服务器发送SYN+ACK包后就会建立连接,但客户端不会理会这个SYN+ACK包,也不会发送确认,这样服务器就会一直等待客户端的数据,浪费服务器资源。-有了第三次握手,客户端不会理会这个SYN+ACK包,服务器也不会建立连接,避免了资源浪费。4.面向对象编程中的继承及其优缺点:继承是面向对象编程的一个基本特性,它允许一个类(子类)继承另一个类(父类)的属性和方法。子类可以继承父类的所有非私有成员,并可以添加自己的新成员或重写父类的方法。继承的优点:-代码复用:通过继承,子类可以重用父类的代码,减少了代码重复,提高了开发效率。-提高代码的可维护性:当需要修改父类的代码时,所有子类都会自动继承这些修改,提高了代码的可维护性。-实现多态性:继承是实现多态性的基础,通过方法重写,可以在子类中提供不同的实现,实现运行时的多态性。-建立类之间的层次关系:继承可以建立类之间的层次关系,更好地反映现实世界中的概念关系。继承的缺点:-破坏了封装性:子类依赖于父类的实现细节,当父类实现发生变化时,可能会影响子类。-增加了系统复杂性:继承层次过深会导致系统变得复杂,难以理解和维护。-不符合"组合优于继承"的设计原则:在某些情况下,使用组合而不是继承可以更好地实现代码复用,同时减少类之间的耦合度。5.数据库中索引的工作原理及其优缺点:索引是数据库中用于提高查询性能的数据结构,它类似于书籍的目录,通过创建索引,数据库可以快速定位到需要的数据,而不需要扫描整个表。索引的工作原理:-数据库使用B树、B+树、哈希表等数据结构来组织索引数据。-对于B树索引,数据按照一定的顺序存储在树结构中,每个节点包含多个键值和指向子节点的指针。-当执行查询时,数据库首先在索引中查找,然后根据索引中的指针定位到实际的数据行。索引的优点:-加速查询:索引可以显著提高查询速度,特别是对于大型表。-保证数据唯一性:唯一索引可以确保列中的值是唯一的,类似于主键。-优化排序和分组:索引可以优化ORDERBY和GROUPBY操作,因为索引已经按照一定的顺序存储了数据。索引的缺点:-占用存储空间:索引需要占用额外的存储空间,特别是对于大型表。-降低写入性能:当插入、更新或删除数据时,需要同时更新索引,这会降低写入性能。-增加维护成本:需要定期维护索引,以保持其有效性,例如重建索引、更新统计信息等。6.计算机网络中的子网划分及其目的:子网划分是将一个大的IP网络划分为多个较小的子网的过程,每个子网可以独立管理和使用。子网划分的目的:-提高网络性能:通过将网络划分为多个子网,可以减少广播域的大小,降低网络流量,提高网络性能。-增强网络安全性:通过子网划分,可以将不同安全级别的设备放在不同的子网中,限制子网之间的访问,提高网络安全性。-简化网络管理:通过子网划分,可以将网络划分为逻辑上独立的单元,便于管理和维护。-优化IP地址使用:通过子网划分,可以更有效地使用IP地址,减少地址浪费。子网划分的基本原理是使用子网掩码来区分网络部分和主机部分。子网掩码是一个32位的二进制数,其中连续的1表示网络部分,连续的0表示主机部分。通过修改子网掩码,可以划分不同大小的子网。五、论述题(每题20分,共40分)1.论述操作系统中的进程调度算法,比较短作业优先(SJF)、优先级调度和时间片轮转三种算法的优缺点。2.论述数据库设计中范式的重要性,解释第一范式(1NF)、第二范式(2NF)和第三范式(3NF)的概念,并举例说明如何将一个不规范的关系模式规范化到第三范式。答案:1.操作系统中的进程调度算法比较:进程调度是操作系统中的一个核心功能,它决定了哪个进程可以获得CPU的使用权。不同的调度算法有不同的特点和适用场景,下面将比较短作业优先(SJF)、优先级调度和时间片轮转三种算法。短作业优先(SJF)算法:-原理:SJF算法选择执行时间最短的进程优先执行。可以分为非抢占式和抢占式两种。-优点:SJF算法的平均等待时间最短,理论上是最优的调度算法。-缺点:需要预先知道进程的执行时间,这在实际应用中很难做到;可能会导致长进程饥饿,即长进程长时间得不到执行;对进程执行时间估计不准确会影响算法性能。优先级调度算法:-原理:每个进程都有一个优先级,调度器选择优先级最高的进程执行。可以分为静态优先级和动态优先级两种。-优点:可以根据进程的重要性或紧急程度分配不同的优先级,适用于实时系统;可以通过调整优先级来满足不同的需求。-缺点:可能导致低优先级进程饥饿;优先级的设置需要专业知识;可能会导致优先级反转问题,即低优先级进程持有高优先级进程所需的资源。时间片轮转算法:-原理:每个进程被分配一个固定的时间片(时间量子),当时间片用完后,进程被抢占,CPU分配给下一个进程。-优点:公平性好,每个进程都能获得CPU时间;响应时间短,适合交互式系统;实现简单。-缺点:时间片大小的选择很重要,太大会导致响应时间长,太小会导致进程切换开销大;对于计算密集型进程,时间片轮转算法的效率不如SJF算法。综合比较:-SJF算法在理论上是最优的,但在实际应用中难以实现,因为很难准确预测进程的执行时间。-优先级调度算法灵活性强,但需要仔细设置优先级,并处理优先级反转等问题。-时间片轮转算法公平性好,响应时间短,适合交互式系统,但对于计算密集型进程效率不高。在实际应用中,操作系统通常会采用多种调度算法的组合,例如使用多级反馈队列调度算法,结合SJF、优先级调度和时间片轮转的优点,根据进程的类型和特点动态调整调度策略。2.数据库设计中范式的重要性及规范化过程:范式是数据库设计中的一组规则,用于指导如何设计关系模式,以减少数据冗余、避免更新异常和提高数据一致性。范式的重要性体现在以下几个方面:-减少数据冗余:通过规范化,可以消除数据冗余,节省存储空间。-避免更新异常:包括插入异常、删除异常和修改异常,确保数据的一致性。-提高查询效率:虽然过度规范化可能会降低查询效率,但适当的规范化可以提高查询效率。-简化数据库设计:范式提供了一套系统的设计方法,使数据库设计更加规范和一致。下面将解释第一范式(1NF)、第二范式(2NF)和第三范式(3NF)的概念,并举例说明如何将一个不规范的关系模式规范化到第三范式。第一范式(1NF):-定义:关系模式中的每个属性都是不可再分的原子值,即每个属性都是基本数据类型。-要求:不允许出现重复组(即一个属性可以有多个值);不允许出现多值属性;不允许出现组合属性。-示例:假设有一个学生选课关系模式SC(Sno,Sname,Cno,Cname,Grade),其中Sno是学号,Sname是学生姓名,Cno是课程号,Cname是课程名,Grade是成绩。这个关系模式满足1NF,因为每个属性都是不可再分的原子值。第二范式(2NF):-定义:如果关系模式满足1NF,并且所有非主键属性都完全依赖于主键,而不是部分依赖于主键,则该关系模式满足2NF。-要求:消除部分函数依赖,即非主键属性必须完全依赖于主键,而不是依赖于主键的一部分。-示例:上述SC关系模式中,主键是(Sno,Cno),Sname仅依赖于Sno,Cname仅依赖于Cno,存在部分函数依赖,因此不满足2NF。可以通过将关系模式分解为两个关系模式:S(Sno,Sname)和C(Cno,Cname),以及SC(Sno,Cno,Grade),这样每个关系模式都满足2NF。第三范式(3NF):-定义:如果关系模式满足2NF,并且所有非主键属性都不传递依赖于主键,则该关系模式满足3NF。-要求:消除传递函数依赖,即非主键属性不能依赖于其他非主键属性。-示例:假设有一个学生关系模式S(Sno,Sname,Sdept,Mname),其中Sno是学号,Sname是学生姓名,Sdept是学生所在系,Mname是系主任。主键是Sno,Sname依赖于Sno,Sdept依赖于Sno,但Mname依赖于Sdept而不是直接依赖于Sno,存在传递函数依赖,因此不满足3NF。可以通过将关系模式分解为两个关系模式:S(Sno,Sname,Sdept)和D(Sdept,Mname),这样每个关系模式都满足3NF。规范化到第三范式的过程:1.确保关系模式满足1NF:消除重复组、多值属性和组合属性。2.确保关系模式满足2NF:消除部分函数依赖,将关系模式分解为多个关系模式。3.确保关系模式满足3NF:消除传递函数依赖,进一步将关系模式分解。规范化是一个迭代的过程,通常需要根据实际需求和查询性能来平衡规范化的程度。过度规范化可能会导致查询效率降低,因此在实际应用中,可能需要在规范化和性能之间做出权衡。六、编程题/算法题(共20分)1.实现一个函数,判断一个字符串是否是回文串。要求忽略大小写和非字母字符,时间复杂度为O(n),空间复杂度为O(1)。2.设计并实现一个LRU缓存机制,要求get和put操作的时间复杂度为O(1)。答案:1.实现一个函数,判断一个字符串是否是回文串:```pythondefis_palindrome(s:str)->bool:"""判断一个字符串是否是回文串,忽略大小写和非字母字符。时间复杂度:O(n)空间复杂度:O(1)参数:s:要检查的字符串返回:bool:如果是回文串返回True,否则返回False"""left,right=0,len(s)-1whileleft<right:跳过非字母字符whileleft<rightandnots[left].isalpha():left+=1whileleft<rightandnots[right].isalpha():right-=1比较字符,忽略大小写ifs[left].lower()!=s[right].lower():returnFalseleft+=1right-=1returnTrue```解释:-使用双指针法,一个指针从字符串开头向右移动,另一个指针从字符串末尾向左移动。-跳过非字母字符,只比较字母字符。-比较时忽略大小写,将字符转换为小写后再比较。-如果发现不匹配的字符,立即返回False。-当两个指针相遇或交叉时,说明所有字符都匹配,返回True。时间复杂度分析:每个字符最多被访问一次,因此时间复杂度为O(n)。空间复杂度分析:只使用了常数级别的额外空间(两个指针变量),因此空间复杂度为O(1)。2.设计并实现一个LRU缓存机制:```pythonclassLRUCache:"""LRU(LeastRecentlyUsed)缓存实现,使用双向链表和哈希表。时间复杂度:get和put操作都是O(1)空间复杂度:O(capacity)"""classNode:"""双向链表的节点类"""def__init__(self,key,value):self.key=keyself.value=valueself.prev=Noneself.next=Nonedef__init__(self,capacity:int):"""初始化LRU缓存参数:capacity:缓存容量"""self.capacity=capacityself.cache={}哈希表,用于快速访问节点self.head=self.Node(0,0)头节点self.tail=self.Node(0,0)尾节点self.head.next=self.tailself.tail.prev=self.headdef_remove_node(self,node):"""从双向链表中移除一个节点参数:node:要移除的节点"""prev_node=node.prevnext_node=node.nextprev_node.next=next_nodenext_node.prev=prev_nodedef_add_to_head(self,node):"""将一个节点添加到链表头部(表示最近使用)参数:node:要添加的节点"""node.prev=self.headnode.next=self.head.nextself.head.next.prev=nodeself.head.next=nodedefget(self,key:int)->int:"""获取缓存中键对应的值,如果不存在返回-1同时将访问的节点移到链表头部,表示最近使用参数:key:键返回:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论