版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、选择题 1、计算机系统中采用补码运算的目的是为了(B)。 A、与手工运算方法保持一致 B、提高运算速度 C、简化计算机的设计 D、提高运算的精度 2、长度相同但格式不同的两种浮点数,假设前者阶码长、尾数短,后者阶码短、尾数长,其他规定均相同,则它们可表示的数的范围和精度为
2、(2)。 A、两者可表示的数的范围和精度相同 B、前者可表示的数的范围大但精度低 C、后者可表示的数的范围大但精度高 D、前者可表示的数的范围大但精度高 3、数值x*的近似值x0.1215×10-2,若满足|x-x*|(3),则称x有4位有效数字。 A、0.5×10-3 B、0.5×
3、10-4 C、0.5×10-5 D、0.5×10-6 4、 一个具有767个结点的完全二叉树,其叶子结点个数为(4)。 A、383 B、384 C、385 D、386 5、对于一个线性表既要求能够进行较快的插入和删除,又要求存储结构能够反应数据之间
4、的逻辑关系,则应该用(5)。 A、顺序方式存储 B、链接方式存储 C、散列方式存储 D、以上方式均可 6、地址码长度为二进制24位时,其寻址范围是(C)。 A、512kB B、1MB C、16MB D、24MB 解析: 2的10次方是10
5、24b,也就是1KB,16M=16*1024*1024也就是2的24次方,所以24位时就是16MB. 7、有m个进程共享同一临界资源,若使用信号量机制实现对一临界资源的互斥访问,则信号量的变化范围是(A)。 A.1至(m-1) B.1至m-1 C.1至m D.1至m 程序的执行结果是(19)。 8、选择下面程序的运行结果是(20)。 #include<iostream.h> struct stu
6、60;int num; char name10; int age; void fun(stu *p) cout<<(*p).name<<end1; main() stu students3=9801,”Zhang”,20, 9802,”Long”,21, 9803,”Xue”,19; fun(
7、students+2); A、 Zhang B、Xue C、Long D、18 9、随着块的增大,Cache的不命中率()。 A、下降 B、上升 C、不变 D、不定 10、 按网络采用的控制方式,可把计算机网络分为()。 A、集中式与广播式
8、; B、主控制式与从控制式 C、集中式与分布式 D、都不是 11、设rear是指向非空带头结点的循环单链表的尾指针,则删除链表第一个结点的操作可表示为()。 A、p=rear;rear=rearnext;free(p); B、rear=rearnext;free(p); C、rear=rearnextnext;free(p);
9、; D、p=rearnextnext; rearnext=pnext free(p); 12、数组A56的每个元素占4个单元,下标从0计起,将其按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A45的地址为()。 A、1116 B、11029 C、1096 D、1088 13、设二叉排序树中关键字由1到1000内的整数构成,现要查找关键字为363的结
10、点,下述关键字序列()不可能是在二叉排序树上查找到的序列? A、2,252,401,398,330,344,397,363 B、924,220,911,244,898,258,362,363 C、925,202,911,240,912,245,363 D、2,399,387,219,266,382,381,278,363 14、进程控制块中的现场信息是在(26)保存的。 A、创建进程时
11、0; B、处理器执行指令时 C、中断源申请中断时 D、中断处理程序处理中断前 15、下面关于面向对象方法中消息的叙述,不准确的是()。 A、键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息 B、操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息 C、应用程序之间可以相互发送消息 D、发送与接收消息的通信机制与传统的子程序调用机制不
12、同 16、消息传递是对象间通信的手段,一个对象通过向另一个对象发送消息来请求其服务。一个消息通常包括()。 A、发送消息的对象的标识、调用的发送方的操作名和必要的参数 B、发送消息的类名和接收消息的类名 C、接收消息的对象的标识、调用的接收方的操作名和必要的参数 D、接收消息的类名 17、软件项目管理一般包含几个方面的内容:任务划分、计划安排、经费管理、审计控制、()和项目保证等 A、市场管理 B、用户管理&
13、#160; &
14、#160; C、风险管理 D、设备管理 18、在使用UML建模时,若需要描述跨越多个用例的单个对象的行为,使用()是最为合适的。 A、协作图(Collaboration Diagram) B、序列图(Sequence Diagram)
15、0; C、活动图(Activity Diagram) D、状态图(Statechart Diagram) 19、某公司使用包过滤防火墙控制进出公司局域网的数据,在不考虑使用代理服务器的情况下,下面描述错误的是“该防火墙能够()”。 A、使公司员工只能访问Internet上与其有业务联系的公司的IP地址 B、仅允许HTTP协议通过 C、使员工不能直接访问FTP服务端口号为21的FTP服务 D、仅允许公司中具有某些
16、特定IP地址的计算机可以访问外部网络20、下列叙述中,与提高软件可移植性相关的是()。 A、选择时间效率高的算法 B、尽可能减少注释 C、选择空间效率高的算法 D、尽量用高级语言编写系统中对效率要求不高的部分 21、采用瀑布模型进行系统开发的过程中,每个阶段都会产生不同的文档。以下关于产生这些文档的描述中,正确的是()。 A、外部设计评审报告在概要设计阶段产生 B、集成测试计划在程序设计阶段产生
17、 C、系统计划和需求说明在详细设计阶段产生 D、在进行编码的同时,独立的设计单元测试计划 22、 一个具有n(n0)个顶点的连同无向图至少有()条边。 A、n1 B、n C、n/2 D、n1 23、一个局域网中某台主机的IP地址为2,使用22位作为网络地址,那么该局域网的子网掩码
18、为(), A、 B、C、 D、 24、(接上题)最多可以连接的主机数为()。 A、254 B、512 C、1022 D、1024
19、160; 25、 以下选项中,可以用于Internet信息服务器远程管理的是()。 A、 Telnet B、RAS C、FTP D、SMTP 26、两个公司希望通过Internet进行安全通信,保证从信息源到目的地之间的数据传输以秘文形式出现,而且公司不希望由于在传输节点使用特殊的安全单元而增加开支,最合适的加密方式是(), A、链路加密 B、节点加
20、密 C、端端加密 D、混合加密 27、 (接上题)使用的会话密钥算法应该是()。 A、RSA B、RC-5 C、MD5 D、ECC 28、关于软件测试对软件质量的意义,有以下观点:度量与评估软件的质量;保证软件质量;改进软件开发过程;发现软件错误。其中正确的是(40)。 A、 B、C、 D、 二、简
21、单题 2.1. 死锁产生的必要条件,如何检测和解除死锁 ? 2.1.1. 要点提示 (1) 掌握死锁的概念和产生死锁的根本原因。 (2) 理解产生死锁的必要条件-以下四个条件同时具备:互斥条件、不可抢占条件、占有且申请条件、循环等待条件。 (3) 记住解决死锁的一般方法,掌握死锁的预防和死锁的避免二者的基本思想。 (4) 掌握死锁的预防策略中资源有序分配策略。 (5) 理解进程安全序列的概念,理解死锁与安全序列的关系。(6) 了解银行家
22、算法。 (7) 了解资源分配图。 (8) 了解死锁的检测及恢复的思想。 2.2. 内容简介 在计算机系统中有很多一次只能由一个进程使用的资源,如打印机,磁带机,一个文件的I节点等。在多道程序设计环境中,若干进程往往要共享这类资源,而且一个进程所需要的资源不止一个。这样,就会出现若干进程竞争有限资源,又推进顺序不当,从而构成无限期循环等待的局面。这种状态就是死锁。系统发生死锁现象不仅浪费大量的系统资源,甚至导致整个系统崩溃,带来灾难性后果。所以,对于死锁问题在理论上和技术上都必须
23、给予高度重视。 2.3. 死锁的概念 死锁是进程死锁的简称,是由Dijkstra于1965年研究银行家算法时首先提出来的。它是计算机操作系统乃至并发程序设计中最难处理的问题之一。实际上,死锁问题不仅在计算机系统中存在,在我们日常生活中它也广泛存在。 2.4. 什么是死锁 我们先看看这样一个生活中的例子:在一条河上有一座桥,桥面较窄,只能容纳一辆汽车通过,无法让两辆汽车并行。如果有两辆汽车A和B分别由桥的两端驶上该桥,则对于A车来说,它走过桥面左面的一段路(即占有了
24、桥的一部分资源),要想过桥还须等待B车让出右边的桥面,此时A车不能前进;对于B车来说,它走过桥面右边的一段路(即占有了桥的一部分资源),要想过桥还须等待A车让出左边的桥面,此时B车也不能前进。两边的车都不倒车,结果造成互相等待对方让出桥面,但是谁也不让路,就会无休止地等下去。这种现象就是死锁。如果把汽车比做进程,桥面作为资源,那麽上述问题就描述为:进程A占有资源R1,等待进程B占有的资源Rr;进程B占有资源Rr,等待进程A占有的资源R1。而且资源R1和Rr只允许一个进程占用,即:不允许两个进程同时占用。结果,两个进程都不能继续执行,若不采取其它措施,这种循环等待状况会无限期持续下去,就发生了进
25、程死锁。 在计算机系统中,涉及软件,硬件资源都可能发生死锁。例如:系统中只有一台CD-ROM驱动器和一台打印机,某一个进程占有了CD-ROM驱动器,又申请打印机;另一进程占有了打印机,还申请CD-ROM。结果,两个进程都被阻塞,永远也不能自行解除。 所谓死锁,是指多个进程循环等待它方占有的资源而无限期地僵持下去的局面。很显然,如果没有外力的作用,那麽死锁涉及到的各个进程都将永远处于封锁状态。从上面的例子可以看出,计算机系统产生死锁的根本原因就是资源有限且操作不当。即:一种原因是系统提供的资源太少了,远不
26、能满足并发进程对资源的需求。这种竞争资源引起的死锁是我们要讨论的核心。例如:消息是一种临时性资源。某一时刻,进程A等待进程B发来的消息,进程B等待进程C发来的消息,而进程C又等待进程A发来的消息。消息未到,A,B,C三个进程均无法向前推进,也会发生进程通信上的死锁。另一种原因是由于进程推进顺序不合适引发的死锁。资源少也未必一定产生死锁。就如同两个人过独木桥,如果两个人都要先过,在独木桥上僵持不肯后退,必然会应竞争资源产生死锁;但是,如果两个人上桥前先看一看有无对方的人在桥上,当无对方的人在桥上时自己才上桥,那麽问题就解决了。所以,如果程序设计得不合理,造成进程推进的顺序不当,也会出现死锁。
27、160;2.5. 产生死锁的必要条件 从以上分析可见,如果在计算机系统中同时具备下面四个必要条件时,那麽会发生死锁。换句话说,只要下面四个条件有一个不具备,系统就不会出现死锁。 1互斥条件。即某个资源在一段时间内只能由一个进程占有,不能同时被两个或两个以上的进程占有。这种独占资源如CD-ROM驱动器,打印机等等,必须在占有该资源的进程主动释放它之后,其它进程才能占有该资源。这是由资源本身的属性所决定的。如独木桥就是一种独占资源,两方的人不能同时过桥。
28、0; 2不可抢占条件。进程所获得的资源在未使用完毕之前,资源申请者不能强行地从资源占有者手中夺取资源,而只能由该资源的占有者进程自行释放。如过独木桥的人不能强迫对方后退,也不能非法地将对方推下桥,必须是桥上的人自己过桥后空出桥面(即主动释放占有资源),对方的人才能过桥。 3占有且申请条件。进程至少已经占有一个资源,但又申请新的资源;由于该资源已被另外进程占有,此时该进程阻塞;但是,它在等待新资源之时,仍继续占用已占有的资源。还以过独木桥为例,甲乙两人在桥上相遇。甲走过一段桥面(即占有了一些资源),还需要走其余的桥面(申请新的资
29、源),但那部分桥面被乙占有(乙走过一段桥面)。甲过不去,前进不能,又不后退;乙也处于同样的状况。 4循环等待条件。存在一个进程等待序列P1,P2,.,Pn,其中P1等待P2所占有的某一资源,P2等待P3所占有的某一源,.,而Pn等待P1所占有的的某一资源,形成一个进程循环等待环。就像前面的过独木桥问题,甲等待乙占有的桥面,而乙又等待甲占有的桥面,从而彼此循环等待。 上面我们提到的这四个条件在死锁时会同时发生。也就是说,只要有一个必要条件不满足,则死锁就可以排除。 2.6. 解决死锁的
30、方法 2.6.1. 死锁的预防 前面介绍了死锁发生时的四个必要条件,只要破坏这四个必要条件中的任意一个条件,死锁就不会发生。这就为我们解决死锁问题提供了可能。一般地,解决死锁的方法分为死锁的预防,避免,检测与恢复三种(注意:死锁的检测与恢复是一个方法)。我们将在下面分别加以介绍。 死锁的预防是保证系统不进入死锁状态的一种策略。它的基本思想是要求进程申请资源时遵循某种协议,从而打破产生死锁的四个必要条件中的一个或几个,保证系统不会进入死锁状态。
31、60;1打破互斥条件。即允许进程同时访问某些资源。但是,有的资源是不允许被同时访问的,像打印机等等,这是由资源本身的属性所决定的。所以,这种办法并无实用价值。 2打破不可抢占条件。即允许进程强行从占有者那里夺取某些资源。就是说,当一个进程已占有了某些资源,它又申请新的资源,但不能立即被满足时,它必须释放所占有的全部资源,以后再重新申请。它所释放的资源可以分配给其它进程。这就相当于该进程占有的资源被隐蔽地强占了。这种预防死锁的方法实现起来困难,会降低系统性能。
32、0; 3打破占有且申请条件。可以实行资源预先分配策略。即进程在运行前一次性地向系统申请它所需要的全部资源。如果某个进程所需的全部资源得不到满足,则不分配任何资源,此进程暂不运行。只有当系统能够满足当前进程的全部资源需求时,才一次性地将所申请的资源全部分配给该进程。由于运行的进程已占有了它所需的全部资源,所以不会发生占有资源又申请资源的现象,因此不会发生死锁。但是,这种策略也有如下缺点: (1)在许多情况下,一个进程在执行之前不可能知道它所需要的全部资源。这是由于进程在执行时是动态的,不可预测的;(2)资源利用率低。无论所分资源何时用到,一个进程只有在占有所需的全部资源后才能
33、执行。即使有些资源最后才被该进程用到一次,但该进程在生存期间却一直占有它们,造成长期占着不用的状况。这显然是一种极大的资源浪费; (3)降低了进程的并发性。因为资源有限,又加上存在浪费,能分配到所需全部资源的进程个数就必然少了。 (4)打破循环等待条件,实行资源有序分配策略。采用这种策略,即把资源事先分类编号,按号分配,使进程在申请,占用资源时不会形成环路。所有进程对资源的请求必须严格按资源序号递增的顺序提出。进程占用了小号资源,才能申请大号资源,就不会产生环路,从而预防了死锁。这种策略与前面的策略相比
34、,资源的利用率和系统吞吐量都有很大提高,但是也存在以下缺点: (1)限制了进程对资源的请求,同时给系统中所有资源合理编号也是件困难事,并增加了系统开销; (2)为了遵循按编号申请的次序,暂不使用的资源也需要提前申请,从而增加了进程对资源的占用时间。 2.6.2. 死锁的避免 上面我们讲到的死锁预防是排除死锁的静态策略,它使产生死锁的四个必要条件不能同时具备,从而对进程申请资源的活动加以限制,以保证死锁不会发生。下面我们介绍排除死锁的动态策略-死锁的避免,它不限制进程有关申请资源的命令,
35、而是对进程所发出的每一个申请资源命令加以动态地检查,并根据检查结果决定是否进行资源分配。就是说,在资源分配过程中若预测有发生死锁的可能性,则加以避免。这种方法的关键是确定资源分配的安全性。 . 安全序列 我们首先引入安全序列的定义:所谓系统是安全的,是指系统中的所有进程能够按照某一种次序分配资源,并且依次地运行完毕,这种进程序列P1,P2,.,Pn就是安全序列。如果存在这样一个安全序列,则系统是安全的;如果系统不存在这样一个安全序列,则系统是不安全的。 安全序列P1,P
36、2,.,Pn是这样组成的:若对于每一个进程Pi,它需要的附加资源可以被系统中当前可用资源加上所有进程Pj当前占有资源之和所满足,则P1,P2,.,Pn为一个安全序列,这时系统处于安全状态,不会进入死锁状态。 虽然存在安全序列时一定不会有死锁发生,但是系统进入不安全状态(四个死锁的必要条件同时发生)也未必会产生死锁。当然,产生死锁后,系统一定处于不安全状态。 . 银行家算法 这是一个著名的避免死锁的算法,是由Dijstra首先提出来并加以解决的。 &
37、#160; 背景知识 一个银行家如何将一定数目的资金安全地借给若干个客户,使这些客户既能借到钱完成要干的事,同时银行家又能收回全部资金而不至于破产,这就是银行家问题。这个问题同操作系统中资源分配问题十分相似:银行家就像一个操作系统,客户就像运行的进程,银行家的资金就是系统的资源。 问题的描述 一个银行家拥有一定数量的资金,有若干个客户要贷款。每个客户须在一开始就声明他所需贷款的总额。若该客户贷款总额不超过银行家的资金总数,银行家可以接收客户的要求。客户贷款是以
38、每次一个资金单位(如1万RMB等)的方式进行的,客户在借满所需的全部单位款额之前可能会等待,但银行家须保证这种等待是有限的,可完成的。 例如:有三个客户C1,C2,C3,向银行家借款,该银行家的资金总额为10个资金单位,其中C1客户要借9各资金单位,C2客户要借3个资金单位,C3客户要借8个资金单位,总计20个资金单位。某一时刻的状态如图所示。银行家算法示意 对于a图的状态,按照安全序列的要求,我们选的第一个客户应满足该客户所需的贷款小于等于银行家当前所剩余的钱款,可以看出只有C2客户能被满足:C2客户需1个资金单位,小银行家
39、手中的2个资金单位,于是银行家把1个资金单位借给C2客户,使之完成工作并归还所借的3个资金单位的钱,进入b图。同理,银行家把4个资金单位借给C3客户,使其完成工作,在c图中,只剩一个客户C1,它需7个资金单位,这时银行家有8个资金单位,所以C1也能顺利借到钱并完成工作。最后(见图d)银行家收回全部10个资金单位,保证不赔本。那麽客户序列C1,C2,C3就是个安全序列,按照这个序列贷款,银行家才是安全的。否则的话,若在图b状态时,银行家把手中的4个资金单位借给了C1,则出现不安全状态:这时C1,C3均不能完成工作,而银行家手中又没有钱了,系统陷入僵持局面,银行家也不能收回投资。
40、60; 综上所述,银行家算法是从当前状态出发,逐个按安全序列检查各客户谁能完成其工作,然后假定其完成工作且归还全部贷款,再进而检查下一个能完成工作的客户,.。如果所有客户都能完成工作,则找到一个安全序列,银行家才是安全的。 从上面分析看出,银行家算法允许死锁必要条件中的互斥条件,占有且申请条件,不可抢占条件的存在,这样,它与预防死锁的几种方法相比较,限制条件少了,资源利用程度提高了。 这是该算法的优点。其缺点是: 1这个算法要求客户数保持固定不变,这在多道程序系统中是难以做到的。
41、160; 2这个算法保证所有客户在有限的时间内得到满足,但实时客户要求快速响应,所以要考虑这个因素。 3由于要寻找一个安全序列,实际上增加了系统的开销。 2.6.3. 死锁的检测与恢复 一般来说,由于操作系统有并发,共享以及随机性等特点,通过预防和避免的手段达到排除死锁的目的是很困难的。这需要较大的系统开销,而且不能充分利用资源。为此,一种简便的方法是系统为进程分配资源时,不采取
42、任何限制性措施,但是提供了检测和解脱死锁的手段:能发现死锁并从死锁状态中恢复出来。因此,在实际的操作系统中往往采用死锁的检测与恢复方法来排除死锁。 死锁检测与恢复是指系统设有专门的机构,当死锁发生时,该机构能够检测到死锁发生的位置和原因,并能通过外力破坏死锁发生的必要条件,从而使得并发进程从死锁状态中恢复出来。 1.放大观看>>) 图中所示为一个小的死锁的例子。这时进程P1占有资源R1而申请资源R2,进程P2占有资源R2而申请资源R1,按循环等待条件,进程和资源形成了环路,所以系统是死锁状态。进程P1,P
43、2是参与死锁的进程。 下面我们再来看一看死锁检测算法。算法使用的数据结构是如下这些: 占有矩阵A:n*m阶,其中n表示并发进程的个数,m表示系统的各类资源的个数,这个矩阵记录了每一个进程当前占有各个资源类中资源的个数。 申请矩阵R:n*m阶,其中n表示并发进程的个数,m表示系统的各类资源的个数,这个矩阵记录了每一个进
44、程当前要完成工作需要申请的各个资源类中资源的个数。 空闲向量T:记录当前m个资源类中空闲资源的个数。 完成向量F:布尔型向量值为真(true)或假(false),记录当前n个并发进程能否进行完。为真即能进行完,为假则不能进行完。 临时向量W:开始时W:=T。 算法步骤: &
45、#160; (1)W:=T, 对于所有的i=1,2,.,n, 如果Ai=0,则Fi:=true;否则,Fi:=false (2)找满足下面条件的下标i: Fi:=false并且Ri=W 如果不存在满足上面的条件i,则转到步骤(4
46、)。 (3)W:=W+Ai Fi:=true 转到步骤(2) (4)如果存在i,Fi:=false,则系统处于死锁状态,且Pi进程参与了死锁。什麽时候进行死锁的检测取决于死锁发生的频率。如果死锁发生的频率高,那麽死锁检测的频率也要相应提高,这样一方面可以提高系统资源的利用率,一方面可以避免更多的进程卷入死锁。如果进程申
47、请资源不能满足就立刻进行检测,那麽每当死锁形成时即能被发现,这和死锁避免的算法相近,只是系统的开销较大。为了减小死锁检测带来的系统开销,一般采取每隔一段时间进行一次死锁检测,或者在CPU的利用率降低到某一数值时,进行死锁的检测。 2.死锁的恢复一旦在死锁检测时发现了死锁,就要消除死锁,使系统从死锁状态中恢复过来。 (1)最简单,最常用的方法就是进行系统的重新启动,不过这种方法代价很大,它意味着在这之前所有的进程已经完成的计算工作都将付之东流,包括参与死锁的那些进程,以及未参与死锁的进程。
48、160; (2)撤消进程,剥夺资源。终止参与死锁的进程,收回它们占有的资源,从而解除死锁。这时又分两种情况:一次性撤消参与死锁的全部进程,剥夺全部资源;或者逐步撤消参与死锁的进程,逐步收回死锁进程占有的资源。一般来说,选择逐步撤消的进程时要按照一定的原则进行,目的是撤消那些代价最小的进程,比如按进程的优先级确定进程的代价;考虑进程运行时的代价和与此进程相关的外部作业的代价等因素。 此外,还有进程回退策略,即让参与死锁的进程回退到没有发生死锁前某一点处,并由此点处继续执行,以求再次执行时不再发生死锁。虽然
49、这是个较理想的办法,但是操作起来系统开销极大,要有堆栈这样的机构记录进程的每一步变化,以便今后的回退,有时这是无法做到的。 2.2. 画出网络中的星型结构、总线结构、环型结构和树型拓扑结构,并说明星型和总线型拓扑结构。 2.3. 把中缀表达式转化成后缀表达式 2.4. A-H 8个字符出现的频率依次为 0.16 0.10 0.01
50、 0.29 0.10 0.05 0.09 0.26 (注明:这几个数我记不清,反正就是这么几个数)构造最优二叉树,并将 A-H 8个字符用二进制码表示及计算平均码长。 2.5. 操作系统中的快表相关的问题 2.6. java的异常处理机制有什么优点 2.7. 输出字符串中第一个只出现一次的字符,用两种方案。 2.8. 某进程被唤醒
51、并立即运行,该系统采用的是剥夺调度方法吗?为什么? 某进程被唤醒并立即运行并不能说明该系统是剥夺调度算法。 进程调度有以下两种基本方式: (1)、非剥夺方式:一旦把处理器分配给某进程后便让它一直运行下去,知道进程完成或发生某事件阻塞时,才把处理器分配给另一个进程。 (2)、剥夺方式:当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理器,将之分配给其他进程。 2.9. A,B,C,D四个元素依次进栈,进栈过程中允许出栈,写出所有可能的出栈序列。 解题思路: 1、先进先出
52、;2、先进后出 3、还没进完就出 4、进完了才出 进一个出一个,ABCD 先进两个,AB进,进C出C,进D出D,出B出A,CDBA 进A进B,进C进D,出D出C出B出A,DCBA 下面的不解释了,不明白你再问 BCDA,BDCA,BCAD,BADC,BACD, 前三个一起进 CBAD,CBDA,CDBA 第一个进去就出来 ADCB,ACDB,ACBD 一共14种 2.10. UML中四类动态建模图(状态图,协作图,活动图,序列图)的区别与用途 U
53、ML提供图来描述系统的结构和行为。在其中,类图用于描述系统的静态结构,状态图,协作图,活动图,序列图则用于描述系统的动态行为,描述系统在执行期间不同时间点是如何动态交互的。 在这四种图中可以大体分为两类:以描述系统状态转移为主的状态图和活动图,以描述系统系统对象通讯和交互为主的协作图和序列图。 1,以描述系统状态转移为主的状态图和活动图 状态图:用来描述对象,子系统,系统的生命周期。通过状态图可以了解一个对象所能达到的所有状态,以及对象收到的事件
54、对对象状态的影响。 活动图:显示动作及其结果。着重描述操作(方法)实现中所完成的工作以及实例或对象中的活动,它是状态图的一个变种。 状态图与活动图的区别:活动图主要描述动作及对象状态改变的结果。状态图主要描述的是事件对对象状态的影响。 2,以描述系统对象通讯和交互为主的协作图和序列图 序列图:描述对象是如何交互的。重点放在消息序列上,描述消息在对象间是如何收发的。 协作图:描述协作对象的交互与链接。
55、160;协作图和序列图的区别:协作图和序列图都是描述对象交互的,但是序列图强调的是时间,协作图强调的空间。2.11. 用图描述出进程的三元状态,并简单说明状态之间的转换条件。 进程有三个状态:就绪状态、运行状态、阻塞状态2.12. 简述网上银行的基本支付模式。 卡号支付、专业版支付、动态密码支付、令牌支付、密码卡支付。常见的就这些了。 2.13. 给出一棵二叉树的前序遍历序列和中序遍历序列,画出二叉树并写出后序遍历序列。 先来了解二叉树的相关知识。 2.13.1. 二叉树概念
56、60; 二叉树(binary tree)是一种数据结构,是一种树型结构,它的特点是每个结点至多只有二棵子树 (即二叉树中不存在度大于2的结点 ),并且,二叉树的子树有左右之分,其次序不能任意颠倒 。 2.13.2. 二叉树的存储结构 . 顺序存储结构 连续的存储单元存储二叉树的数据元素。例如图 6.4(b)的完全二叉树 , 可以向量 (一维数组 )
57、bt(1:6)作它的存储结构,将二叉树中编号为 i的结点的数据元素存放在分量 bti中 ,如图 6.6(a) 所示。但这种顺序存储结构仅适合于完全二叉树 ,而一般二叉树也按这种形式来存储 ,这将造成存 贮浪费。如和图 6.4(c)的二叉树相应的存储结构图 6.6(b)所示,图中以 “0”表示不存在此结点 。 . 链式存储结构 就绪状态 阻塞状态 运行状态 当进程分配了处理机之后
58、正在执行的进程因时间片段用完而被暂停执行;或者在可抢占调度方式中,一个优先级高的进程到来,正在执行的低优先级进程被强制撤下处理机,转换为就绪状态。 正在执行的进程因等待某事件而无法正常执行。 进程所等待的某事件发生了 由二叉树的定义得知二叉树的结点由一个数据元素和分别指向左右子树的两个分支构成 ,则表示二叉树的链表中的结点至少包含三个域 :数据域和左右指针域 ,如图 (b)所示。有时 ,为了便于找 到结点的双亲 ,则还可在结点结构中增加一个指向其双
59、亲受的指针域,如图 6.7(c)所示。 2.13.3. 遍历二叉树 遍历二叉树 (traversing binary tree)的问题, 即如何按某条搜索路径巡访树中每个结点,使得每个结点均被访问一次,而且仅被访问一次。 其中常见的有三种情况:分别称之为先 (根 )序遍历,中 (根 )序遍历和后 (根 )序遍历。 这三种分类都是以根所在的位置进行分类的。
60、 . 前序遍历 前序遍历运算:即先访问根结点,再前序遍历左子树,最后再前序遍历右子树。前序遍历运算访问二叉树各结点是以根、左、右的顺序进行访问的。 . 中序遍历 中序遍历运算:即先中前序遍历左子树,然后再访问根结点,最后再中序遍历右子树。中序遍历运算访问二叉树各结点是以左、根、右的顺序进行访问的。 . 后序遍历 后序遍历运算:即先后序遍历左子树,然后再后序遍历右子树,最后访问根结点。后序遍历运算访问二叉树各结点是以左、右、根的顺序进行访问的。 例子:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 十借款合同范例
- 房屋全款协议合同范例
- 天津滨海汽车工程职业学院《水墨艺术》2023-2024学年第一学期期末试卷
- 卡车维修合同范例
- 双方自愿离婚合同范例
- 消防隐患租房合同范例
- 档案仿真合同范例
- 医学心理伦理学测试题(附答案)
- 辐射安全考核核医学模考试题+答案
- 公司货款欠款合同范例
- 现代药物制剂与新药研发智慧树知到答案章节测试2023年苏州大学
- 肺结核的学习课件
- 心肺复苏术最新版
- 2023-2024学年贵州省贵阳市小学数学六年级上册期末自测提分卷
- GB/T 9115.2-2000凹凸面对焊钢制管法兰
- 永久避难硐室安装施工组织措施
- 元旦节前安全教育培训-教学课件
- 芯片工艺流程课件1
- 化工原理设计-苯-氯苯分离过程板式精馏塔设计
- 新教材人教A版高中数学选择性必修第一册全册教学课件
- IEC60335-1-2020中文版-家用和类似用途电器的安全第1部分:通用要求(中文翻译稿)
评论
0/150
提交评论