问题2

1、克鲁斯卡尔算法

5、软件需求分析的任务不应包括结构化程序设计。在需求分析中,分析员要从用户那里解决的最重要的问题是 将用户眼中的业务转换成设计人员所需要的信息组织。需求规格说明书的内容应当包括需求说明文档、数据字典和数据流程图。

7、文法G=(VT,VN,P,S)的类型由G中的 (32) 决定。若G0=({a,b},{S,X,Y},P,S),P中的产生式及其序号如下:
1:S→XaaY
2:X→YYlb
3:Y→XbXla
则G0为 (33) 型文法,对应于 (34) ,由G0推导出句子aaaaa和baabbb时,所用产生式序号组成的序列分别为 (35) 和 (36) 。

【解析】形式语言的文法是一个4元组G=(VT,VN,P,S),其中VT是非空有限集,称为终端符集,VN也是非空有限集,称为变量集;P为产生式集;S为起始符,S∈VN。形式语言的文法按P的特性可分成正则文法、上下文无关文法、上下文有关文法和图灵文法4种类型,又分别称为3型、2型、1型和0型文法。所对应的可实现的自动机分别为有限状态自动机、下推自动机、线性有界自动机和图灵机。本题中给出的文法、生产式左部均是单个变量,因此是上下文无文法。由此文法导出句子aaaaa的产生式号的序列及推导过程如下:
S→XaaY1→YYaaY2→aYaaY3→aaaaY3→aaaaa 3句子baabbb的推导过程为:
S→XaaY1→baaY2→baaXbx3→baabbx 2→baabbb2因而产生式号的序列是12333和12322

8、友元的作用
总的来说就是为了让非成员函数即普通函数或其他类可以访问类的私有成员,这确实破坏了类的封装性和数据的隐蔽性,但为什么要这么做呢?
(c++ primer:尽管友元被授予从外部访问类的私有部分的权限,但它并不与面向对象的编程思想相悖,相反,他们提高了公有接口的灵活性)。
要理解上面这句话,就必须知道友元形成的过程:(任何函数,或者成员函数或者类想成为某个类的友元,这是由这个类来决定的,而不能从外部强加友情)
下面来看不引进友元的缺点:
(1)数据的封装是把双刃剑,只要数据被封装,类外的函数就无法访问到类内的私有成员函数,但有些情况下,我们必须要访问某一些类的私有成员,我们就会为了这一些特殊的少部分访问操作要把数据成员公有化,即为了满足少量人的需求而把数据置于公共的不安全的状态下,这显然是不明智的,同理,在公共接口中放置一些可以访问私有成员的函数作为接口让其他外部函数进行访问,这样做也就把私有成员通过自己的公有接口暴漏,不可取,这种在数据的安全性和共享性的博弈中,没有两全其美的方案,所以就产生了友元这种机制,即尽可能的对数据进行封装,有特殊要求就特殊对待,即对某些类外的函数“开后门”,对那些函数“开后门”由类说了算,这正是提高公共接口的灵活性的体现。
【二】友元函数的形态
友元主要分为友元函数和友元类,在电视机和遥控器的例子中,电视机和遥控器都可以控制电视(换台,调节音量,切换模式等),但电视机和遥控器不是派生继承的关系,为了复用和控制电视机,就可以把遥控器类声明为电视机的友元类,这样遥控器类中的所有函数就可以使用电视机类中的所有成员,包括复用电视机中的所有操作,但是发现除了频道这个电视机的私有成员,其他的私有成员在电视机的公共接口中都可以访问,那么,就没必要吧整个遥控器类声明为友元类,只要把直接操作频道的这个函数声明为电视机的友元函数即可。
【友元函数】在类内部,只能申明函数原型,不能定义函数体,不是访问级别的限制。
【友元类】友类的每个成员都可以访问另一个类中的保护成员和私有成员。

注意:调用私有成员需要制定对象,即:对象名.变量。
成员函数有this指针,而友元函数没有this指针。
友元函数是不能被继承的,就像父亲的朋友未必是儿子的朋友。

原文:https://blog.csdn.net/pipinuan/article/details/52848251

9、4个关系模式

原文:https://blog.csdn.net/chuan4110/article/details/82505853

10、软件测试

12、高度为h的堆,最多有2h-1个元素,最少有2 h-1个元素。在高度为h的大根堆中,关键字最小的元素存放在堆的第h层上的最后一个元素的位置w上,其中2 h-1≤w≤2h-1。

13、
14、三次握手
转载:https://blog.csdn.net/qq_38950316/article/details/81087809

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值