选择特殊符号
选择搜索类型
请输入搜索
HDLC规程要素 规定了数据链路的信道状态、操作与非操作方式、控制字段中的格式和参数、链路级的命令响应及相应的编码以及异常状态的报告与恢复等。
操作方式规定了数据站与数据站之间传送数据时的相互关系。HDLC规程中有正常响应方式(NRM)、异步响应方式(ARM)和异步平衡方式(ABM)三种操作方式。NRM是一种不平衡数据链路操作方式,适用于点对点与点对多点通信的场合。在这种场合下,次站只有收到主站的明确允许后才能传送一帧或多帧|ARM也是一种不平衡数据链路操作方式,适用于点对点通信的场合,在这种场合下,次站不必收到来自主站的明确允许就可开始传送一个或多个响应帧;如图是一种平衡数据链路操作方式,适用于点对点的通信,在这种场合下,任何一个组合站在任何时刻都可以发送命令帧,并无须收到来自其他组合站的明确允许就可以开始传送响应帧。
HDLC规程规定有三种控制字段格式。对于基本操作(模8)。,其控制字段格式如表所示。
基本操作(模8)的控制字段格式如图1所示。
表中N(S)为发送端发送帧顺序编号,N(R)为发送端接收的接收帧顺序编号,S为监控功能位,M为修改功能位,P/F为探询/终结位,即发送命令帧时的探询位,或发送响应帧时的终结位。
I格式用来实现信息传送;S格式用来实现数据链路监控功能格式用来提供附加的数据链路控制功能和无编号信息传送。S格式与U格式(UI帧除外)的信息字段(I)为零。
1.HDLC的操作方式
HCLC是通用的数据链路控制协议,当开始建立数据链路时,允许选用特定的操作方式。所谓链路操作方式,通俗地讲就是某站点以主站方式操作,还是以从站方式操作,或者是二者兼备。
在链路上用于控制目的站称为主站,其它的受主站控制的站称为从站。主站负责对数据流进行组织,半且对链路上的差错实施恢复。由主站发往从站的帧称为命令帧,而由由站返回主站的帧称响应帧。
连有多个站点的链路通常使用轮询技术,轮询其它站的站称为主站,而在点到点燃链路中每个站均可为主站。主站需要比从站有更多的逻辑功能,所以当终端与主机相连时,主机一般总是主站。
在一个站连接多条链中的情况下,该站对于一些链路而言可能是主站,而对另外一些链路而言又可能是从站。
有些可兼备主站和从站的功能,这站称为组合站,用于组合站之间信息传输的协议是对称的,即在链路上主、从站具有同样的传输控制功能,这又称作平衡操作,在计算机网络中这是一个非常重要的概念。相对的,那种操作时有主站、从站之分的,且各自功能不同的操作,称非平衡操作。
HDCL中常用的操作方式有以下三种:
(1)正常响应方式NRM(Normal Responses Mode)是一种非平衡数据链路操作方式,有时也称非平衡正常响应方式。该操作方式适用于面向终端的点到点或一点与多点的链路。在这种操作方式,传输过程由主站启动,从站只有收到主站某个命令帧后,才能作为响应向主站传输信息。响应信息可以由一个或多个帧组成,若信息 由多个帧组成,则应指出哪一个是最后一帧。主站负责管理整个链路,且具有轮询、选择从站及向从站发送命令的权利,同时也负责对超时、重发及各类恢复 操作的控制。NRM操作方式见图3.7(a)。
(2)异步响应方式ARM
异步响应方式ARM(Asynchronous Responses Mode)也是一种非平衡数据链路操作方式,与NRM不同的是,ARM下的传输过程由从站启动。从站主动发送给主站的一个或一组帧中可包含有信息,也可以是仅以控制为目的而发的帧。在这种操作方式下,由从站来控制超时和重发。该方式对采用轮询方式的多站莲路来说是必不可少的。ARM操作方式见图3.7(b)。
(3)异步平衡方式ABM
异步平衡方式ABM(Asynchronous Balanced Mode)是一种允许任何节点来启动传输的操作方式。为了提高链路传输效率,节点之间在两个方向上都需要的较高的信息传输量。在这种操作方式下任何时候任何站都能启动传输操作,每个站既可作为主站又可作为从站,每个站都是组合站。各站都有相同的一组协议,任何站都可以发送或接收命令,也可以给出应答,并且各站对差错恢复过程都负有相同的责任。
七十年代初,IBM公司率先提出了面向比特的同步数据链路控制规程SDLC(Synchronous Data Link Control)。随后,ANSI和ISO均采纳并发展了SDLC,并分别提出了自己的标准:ANSI的高级通信控制过程ADCCP(Advanced Data Control Procedure),ISO的高级数据链路控制规程HDLC(High-level Data Link Contl)。
链路控制协议着重于对分段成物理块或包的数据的逻辑传输,块或包由起始标志引导并由终止标志结束,也称为帧。帧是每个控制、每个响应以及用协议传输的所有信息的媒体的工具。所有面向比特的数据链路控制协议均采用统一的帧格式,不论是数据还是单独的控制信息均以帧为单位传送。
每个帧前、后均有一标志码01111110,用作帧的起始、终止指示及帧的同步。标志码不允许在帧的内部出现,以免引起畸意。为保证标志码的唯一性但又兼顾帧内数据的透明性,可以采用“0比特插入法”来解决。该法在发送端监视除标志码以外的所有字段,当发现有连续5个“1”出现时,便在其后添插一个“0”,然后继续发后继的比特流。在接收端,同样监除起始标志码以外的所有字段。当连续发现5个“1”出现后,若其后一个比特“0”则自动删除它,以恢复原来的比特流;若发现连续6个“1”,则可能是插入的“0”发生差错变成的“1”,也可能是收到了帧的终止标志码。后两种情况,可以进一步通过帧中的帧检验序列来加以区分。“0比特插入法”原理简单,很适合于硬件实现。
在面向比特的协议的帧格式中,有一个8比特的控制字段,可以用它以编码方式定义丰富的控制命令和应答,相当于起到了BSC协议中众多传输控制 字符和转义序列的功能。
作为面向比特的数据链路控制协议的典型,HDLC具有如下特点:协议不依赖于任何一种字符编码集;数据报文可透明舆传输,用于实现透明传输的“0比特插入法”易于硬件实现;全双工通信,不必等待确认便可连续发送数据,有较高的数据链路传输效率;所有帧均采用CRC校验,对信息帧进行编号,可纺止漏收或重份,传输可靠性高;传输控制功能与处理功能分离,具有较大灵活性和较完善的控制功能。由于以上特点,目前网络设计普遍使用HDLC作为数据链路管制协议。
JTG_D40-2011公路水泥混凝土路面设计规范JTJ073.2-2001公路沥青路面养护技术规范公路沥青路面设计规范(JTG D50-2006) JTG_F41-2008公路沥青路面再生技术规范J...
计 量 管 理 制 度汇 编(样 本)自二○○四年三月一日起实施 计量管理文件目录编号 文件名称第一部分 计量管理方针、目标第二部分 计量组织机构人员职责第三部分 计量器具的分类和管理第四部分 计量器...
HDLC规程有不平衡操作的正常响应方式类(UNC)、不平衡操作的异步响应方式类(UAC)和平衡操作的异步响应方式类(BAO三种基本的规程类别。
不平衡类的特征是数据链路的一端只有一个主站,而另一端有一个或多个次站,数据链路的管理由主站单独负责>平衡类的特征是在一条数据链路两端各有一个组合站,它们对数据链路的管理负有同等责任。
在HDLC中,数据和控制报文均以帧的标准格式传送。HDLC中的帧类似于BSC的字符块,但BSC协议中的数据报文和控制报文是独立传输的,而HDLC中的命令应以统一的格式按帧传输。HDLC的完整的帧由标志字段(F)、地址字段(A)、控制字段(C)、信息字段(I)、帧校验序列字段(FCS)等组成,如图2所示。.
图2 HDLC帧结构
(1)标志字段(F)
标志字段为01111110的比特模式,用以标志帧的起始和前一帧的终止。标志字段也可以作为帧与帧之间的填充字符。通常,在不进行帧传送的时刻,信道仍处于激活状态,在这种状态下,发方不断地发送标志字段,便可认为一个新的帧传送已经开始。采用“0比特插入法”可以实现0数据的透明传输。
(2)地址字段(A)
地址字段的内容取决于所彩了的操作方式。在操作方式中,有主站、从站、组合站之分。每一个从站和组合站都被分配一个唯一的地址。命令帧中的地址字段携带的是对方站的地址,而响应帧中的地址字段所携带的地址是本站的地址。某一地址也可分配给不止一个站,这种地址称为组地址,利用一个组地址传输的帧能被组内所有拥有该组一焉的站接收。但当一个站或组合站发送响应时,它仍应当用它唯一的地址。还可用全“1”地址来表示包含所有站的地址,称为广播地址,含有广播地址的帧传送给链路上所有的站。另外,还规定全“0”地址为无站地址,这种地址不分配给任何站,仅作作测试。
(3)控制字段(C)
控制字段用于构成各种命令和响应,以便对链路进行监视和控制。发送方主站或组合站利用控制字段来通知被寻址的从站或组合站执行约定的操作;相反,从站用该字段作对命令的响应,报告已完成的操作或状态的变化。该字段是HDLC的关键。控制字段中的第一位或第一、第二位表示传送帧的类型,HDLC中有信息帧(I帧)、监控帧(S帧)和无编号帧(U帧)三种不同类型的帧。控制字段的第五位是P/F位,即轮询/终止(Poll/Final)位。
(4)信息字段(I)
信息字段可以是任意的二进制比特串。比特串长度未作限定,其上限由FCS字段或通信站的缓冲器容量来决定,目前国际上用得较多的是1000~2000比特;而下限可以为0,即无信息字段。但是,监控帧(S帧)中规定不可有信息字段。
(5)帧校验序列字段(FCS)
帧校验序列字段可以使用16位CRC,对两个标志字段之间的整个帧的内容进行校验。FCS的生成多项式CCITT V4.1建议规定的X16 X12 X5 1。
(1)信息帧(I帧)
信息帧用于传送有效信息或数据,通常简称I帧。I帧以控制字第一位为“0”来标志。
信息帧的控制字段中的N(S)用于存放发送帧序号,以使发送方不必等待确认而连续发送多帧。N(R)用于存放接收方下一个预期要接收的帧的序号,N(R)=5,即表示接收方下一帧要接收5号帧,换言之,5号帧前的各帧接收到。N(S)和N(R)均为3位二进制编码,可取值0~7。
(2)监控帧(S帧)
监控帧用于差错控制和流量控制,通常简称S帧。S帧以控制字段第一、二位为“10”来标志。S帧带信息字段,只有6个字节即48个比特。S帧的控制字段的第三、四位为S帧类型编码,共有四种不同编码,分别表示:
00——接收就绪(RR),由主站或从站发送。主站可以使用RR型S帧来轮询从站,即希望从站传输编号为N(R)的I帧,若存在这样的帧,便进行传输;从站也可用RR型S帧来作响应,表示从站希望从主站那里接收的下一个I帧的编号是N(R)。
01——拒绝(REJ),由主站或从站发送,用以要求发送方对从编号为N(R)开始的帧及其以后所有的帧进行重发,这也暗示N(R)以前的I帧已被正确接收。
10——接收未就绪(RNR),表示编号小于N(R)的I帧已被收到,但目前正处于忙状态,尚未准备好接收编号为N(R)的I帧,这可用来对链路流量进行控制。
11——选择拒绝(SREJ),它要求发送方发送编号为N(R)单个I帧,并暗示它编号的I帧已全部确认。
可以看出,接收就绪RR型S帧和接收未就绪RNR型S帧有两个主要功能:首先,这两种类型的S帧用来表示从站已准备好或未准备好接收信息;其次,确认编号小于N(R)的所有接收到的I帧。拒绝REJ和选择拒绝SREJ型S帧,用于向对方站指出发生了差错。REJ帧用于GO-back-N策略,用以请求重发N(R)以前的帧已被确认,当收到一个N(S)等于REJ型S帧的N(R)的I帧后,REJ状态即可清除。SREJ帧用于选择重发策略,当收到一个N(S)等SREJ帧的N(R)的I帧时,SREJ状态即应消除。
(3)无编号帧(U帧)
无编号帧因其控制字段中不包含编号N(S)和N(R)而得名,简称U帧。U帧用于提供对链路的建立、拆除以及多种控制功能,这些控制功能5个M位(M1、M2、M3、M4、M5,也称修正位)来定义。5个M位可以定义32种附加的命令功能或32种应答功能,但目前许多是空缺的。
高级数据链路控制规程HDLC
高级数据链路控制规程 HDLC 中兴通讯南京研究所用服部 ATM 科 第 2 页 共 14 页 目 录 1.数据链路控制规程 .............................................................................................................3 1. 1 数据链路结构 .........................................................................................................3 1. 2 数据链路控制规程功能 .....................................................................................
CH3-5ed数据链路层3-问题与控制-3ed
CH3-5ed数据链路层3-问题与控制-3ed
《哈佛商业评论》曾宣称“数据科学家”是二十一世纪最性感的职业。所谓性感,既代表着难以名状的诱惑,又说明了大家对它又不甚了解。
如何做好数据科学呢?
微软高级数据科学家 Brandon Rohrer 概括了做数据科学的七大步骤,手把手教你做数据科学。
1. 获取更多的数据
数据科学的原材料是数字和名称的集合,测量、价格、日期、时间、产品、标题、行动等,数据科学无所不包。你也可以使用图像、文字、音频、视频等复杂数据,只要你能将它们简化为数字和名称。
获取数据的机制可能非常复杂,事实上,数据工程师就像忍者一样。不过,本篇文章将主要聚焦于数据科学。
2. 问一个尖锐的问题
数据科学是通过数字和名称组成的数据集合来回答问题的过程。你问的问题越精确,越容易找到令你满意的答案。
在选择问题的时候,想象你的面前是一个可以用数字或字段来告诉你宇宙中一切奥秘的圣人,他的回答总是模糊不清、令人困惑,而你希望问一个精准而无懈可击的问题,让他忍不住告诉你问题的答案。
模糊的问题如“我的数据能告诉我什么?”、“我应该做什么?”我怎样提高利润?”会带来无用的回答,而清晰的问题如“第三季度我能在蒙特利尔卖出多少产品?”、“我车队中的哪一辆车会先坏?”会带来清晰的答案。
在有了问题后,要看你的数据是否能够回答这些问题。如果你的问题是“我的下周的价格是多少?”,那就要确保你的数据中有的历史价格;如果你的问题是“88型航空发动机能够工作多少小时?”,那就要确保你有多台88型发动机故障次数的数据。
这些就是你的目标数据 (target),即你希望在未来预测或布置的量或种类。如果你没有任何目标数据,需要回到步骤1,获取更多的数据,因为没有目标数据则无法回答问题。
3. 将数据置于表格中
大部分机器学习算法假设数据以表格的形式呈现,每行是一个事件、项目或实例,每列是行数据的一个特征或属性。
在一个描述美国足球比赛的数据集中,每行可能代表一场比赛,列可能包括主场队、客场队、主场得分、客场得分、日期、开始时间、出场情况等等。表格中的列可以非常细致,有多少都可以。
选择所需数据行
将数据集分割成行有许多方法,但只有一种方法能帮助你回答问题:每行有且只能有一个目标实例。以零售店数据为例,一行可以是一次交易、一天营业额、一个零售店、一个顾客等等。
如果你的问题是“刚进过店的顾客会回访吗?”,那应当以一个顾客作为一行,你的目标“顾客是否回访”将呈现在每行,而如果以一个零售店或者一天营业额作为每行的数据则不能回答目标问题。
有时你必须通过累积数据来获得需要的数据。如果你的问题是“我每天卖出多少拿铁咖啡?”,那你需要的数据是以天数作为行、卖出的拿铁数作为列,但是你手头的数据可能是带有日期和时间的交易记录。
为了将这些数据变为每天的数据,需要对目前的数据进行累积,将每一天卖出的拿铁数进行合计。在这个过程中,有些信息会丢失,例如每杯拿铁卖出的时间,但没有关系,因为它不会帮助你回答问题。
4. 检查数据质量
检视
下一步是认真地排查数据。检查数据有两个目的:第一,发现错误数据,修复或去除;第二,充分了解每一行每一列。这一步不能跳过,否则无法让数据发挥最大功效。只有你对你的数据表示出爱,它才会爱你哦。
以一列数据为例,它的标签是什么?数值与标签匹配吗?标签对你来说有意义吗?这一列数据有记录吗?是怎样测量的?谁来测量的?如果你幸运地认识录入数据的人,不妨约他们出来吃甜甜圈,问问他们是怎样测量的,问问他们录入中有没有有趣的故事,这一顿点心会给你带来回报的。
现在,让我们把用这一列画一个柱状图。整体分布符合你的预期吗?是否有异常数据点?异常点是否有意义?例如,如果这一列代表的是农业分布的经度,有没有一个数据点落在太平洋中?如果这一列是关于考试分数,是否有人的分数是1%或者10000% ?用你所知的一切对数据做一个监测,如果有的数据看起来有些奇怪,找出为什么。
校正
在排查数据中,你可能发现一些标签和记录的错误,记录并分享你的发现。
你也可能发现一些值是错误的。一些值可能超过了正常范围,比如一个人竟然72米高,或者有些值是不可能出现的,例如一个写成“中心路 7777777777 号”的地址。
这种情况下,你有三个选择:如果这个值很容易更改,那就改为正确的值,例如把高72米改成72英寸;如果错误的值不明显,你可以删掉这个值、注明缺失;如果这个值是关键信息,你可以删除整行或者整列。这样可以让你训练的模型远离错误数据。错误数据可比缺失数据危害更大。
你可能很想移除看起来不理想的数据,例如异常数据或者不支持你的理论的数据——但千万别这样做,否则不仅违背学术伦理,更可怕的是可能会导致错误结果。
替换缺失值
几乎每一个数据集都存在缺失值,可能是由于数值错误被删除了,也可能是你在实验途中去测量了一个新的变量,还可能是这些数据来自不同的数据源。但不管什么情况,大部分机器学习算法要么要求数据无缺失,要么会用默认值填充。而你可以比机器做得更好,因为你了解你的数据。
替换缺失值有很多方法,《处理缺失值的方法》一文提供了一个办法,而最佳的处理办法取决于每一列的意义和数值缺失带来的影响,每一个数据集的情况可能都有所不同。
替换完所有的缺失值后,你的数据们现在已经“连上”了,每一个数据点对每一个特征都有意义。现在,这些数据是干净的、可以拿来用了。
有时候你可能发现,在数据清理后,几乎没有剩余的数据了……这是件好事情,因为你刚刚避免了走上用错误的数据建立模型、得到错误的结论、被客户嘲笑、激怒老板的不归路 …… 如果是这样,那就回到第一步,从头获取更多的数据吧!
5. 变换特征
在进入机器学习之前还有一步:特征工程 (feature engineering) ,即对现有特征数据进行创意组合,以更好地预测你的目标。举个例子,如果我们把火车到达和出发的时间相减,可以得到火车的运输时间,这个特征对完成目标即预测火车的最大速度更加有用。
严格来讲,特征工程并不会增加任何数据信息,只是使用各种方法对原有数据进行组合。然而,仅仅对两栏的数据进行组合就有无限种方式,而大部分组合方式对解决目标并没有什么帮助。通常情况下,只有在对数据有充分了解的情况下才可能选出一个好的方式。你需要充分调用你所有的相关知识,让数据为你所用。
特征工程是数据科学中最微妙的一步,没有一成不变的办法,而是要不断试错、依靠直觉和经验。深度学习试图让这个过程自动完成,但大多以失败告终,也许这就是人类智能的特别之处吧。
不过,即使你还不是特征工程的黑带高手,也有一个可以使用的小技巧。你可以根据你的目标,用不同的颜色标识变量,这可以帮你发现变量之间的关系。这可能工作量较大,不过你一定要花些时间过一遍。每当你发现有两个变量与目标相关,那可能就是一个特征工程,意味着这两个变量结合在一起可能比孤立来看更有帮助。
有时候,你会发现你的数据中没有任何变量或变量的组合能够帮你预测目标,这可能意味着你需要测量一些其他变量。那么,重回第一步,获取更多的数据吧 !
6. 回答问题
终于到了数据科学家最爱的部分了 —— 机器学习!简单地说,你需要确定你的问题属于哪种算法 ,然后使用传统的机器学习技巧来分割数据进行训练、调整、测试数据集、根据选择的模型优化参数。
如果你的模型无法很好地解决问题,或者你不想用机器学习,还有两种非传统的方法:
第一种,简单地看一下你的数据图像,很多情况下,只要对数据进行可视化就能找到答案。例如,如果你的问题是“波士顿明年7月4号的最高气温是多少?”,那么只要看一下过去100年间波士顿每年7月4日最高气温的直方图就基本可以解决问题了。
第二种方法技术含量更高一些。如果你是因为数据集太小而得不到结果,你可以考虑进行优化。机器学习基于弱先验假设,也就是说,机器学习对数据结构做一些较弱的假设。
这种方法的优点在于使用算法之前不需要对数据有太多了解,它能够训练出一些大致的模型,而缺点在于需要大量数据才能获得一个可信的答案。一个替代方法是根据你对数据的了解,对数据做更多的假设。例如,如果你想预测一个物体的飞行轨迹,你可以收集大量物体自由落体的数据,用它们训练机器学习算法。你其实还可以用你了解的牛顿力学知识来制作一个更丰富的模型。这样,只需要一个包括位置和速度的数据点就可以预计这个物体在未来任何一点的位置和速度。这种方法的风险在于你的假设可能不完全正确,但优点是你不需要大量的数据就能完成任务。
如果这些办法对你都不适用,也许意味着你需要收集更多的数据,或者重新思考一下你测量的数据。回到第一步,获取更多数据吧 ~
7 .应用答案
不管你如何优雅地用数据回答提出的问题,你的工作直到有用户使用才算完成。将你的结果以某种形式呈现给用户,用户可以用它做决策、完成任务或进行学习。
展示的方式有很多:你可以将结果放在 web 页面上,把你发现的最有用的信息呈现在 PDF上,可以在 GitHub 上分享你的代码,可以把结论做成视频分享给你的商业客户,可以制作美观的数据可视化成果发在 Twitter 上,等等。不管采用哪种方式,要让其他人使用你的成果。
森林中的一棵树倒下,即使附近没有人听见,仍然会有响声,但如果你建造了一个精良的模型却没人用,你肯定不会得到赞誉。
那么就从头开始吧,回到第一步,获取更多的数据!
第1章 哈希表
1.1 哈希表的基本原理
1.2 哈希表的基本概念
1.3 哈希函数的构造
1.4 哈希表的基本操作
1.5 冲突的处理
1.6 哈希表的性能分析
1.7 哈希表的应用举例
1.8 本章习题
第2章 树与二叉树
2.1 树
2.1.1 树的存储结构
2.1.2 树的遍历
2.2 二叉树
2.2.1 普通树转换成二叉树
第1章 哈希表 1.1 哈希表的基本原理 1.2 哈希表的基本概念 1.3 哈希函数的构造 1.4 哈希表的基本操作 1.5 冲突的处理 1.6 哈希表的性能分析 1.7 哈希表的应用举例 1.8 本章习题
第2章 树与二叉树 2.1 树 2.1.1 树的存储结构 2.1.2 树的遍历 2.2 二叉树 2.2.1 普通树转换成二叉树 2.2.2 二叉树的遍历 2.2.3 二叉树的其他操作 2.2.4 二叉树的形态 2.3 二叉排序树 2.4 哈夫曼二叉树 2.5 字典树 2.6 本章习题
第3章 优先队列与二叉堆 3.1 优先队列 3.2 二叉堆 3.2.1 Put操作 3.2.2 Get操作 3.3 可并堆 3.3.1 左偏树的定义 3.3.2 左偏树的基本操作 3.4 本章习题
第4章 并查集 4.1 并查集的主要操作 4.2 并查集的实现 4.2.1 并查集的数组实现 4.2.2 并查集的链表实现 4.2.3 并查集的树实现 4.3 并查集的应用举例 4.4 本章习题
第5章 线段树 5.1 线段树的应用背景 5.2 线段树的初步实现 5.2.1 线段树的结构 5.2.2 线段树的性质 5.2.3 线段树的存储 5.2.4 线段树的常用操作 5.2.4.1 线段树的构造 5.2.4.2 线段树的查询 5.2.4.3 线段树的修改 5.2.4.4 线段树的延迟修改 5.3 线段树在一些经典问题中的应用 5.3.1 逆序对问题 5.3.2 矩形覆盖问题 5.4 线段树的扩展 5.4.1 用线段树优化动态规划 5.4.2 将线段树扩展到高维 5.4.3 线段树与平衡树的结合 5.5 线段树与其他数据结构的比较 5.6 线段树的应用举例 5.7 本章习题
第6章 树状数组 6.1 树状数组的问题模型 6.2 树状数组的基本思想 6.3 树状数组的实现 6.3.1 子集的划分方法 6.3.2 查询前缀和 6.3.3 修改子集和 6.4 树状数组的常用技巧 6.4.1 查询任意区间和 6.4.2 利用SHill数组求出原数组a的某个元素值 6.4.3 找到某个前缀和对应的前缀下标index 6.4.4 成倍扩张/缩减 6.4.5 初始化树状数组 6.5 树状数组与线段树的比较 6.6 树状数组扩展到高维的情形 6.7 树状数组的应用举例 6.8 本章习题
第7章 伸展树 7.1 伸展树的主要操作 7.1.1 伸展操作 7.1.2 伸展树的基本操作 7.2 伸展树的算法实现 7.3 伸展树的效率分析 7.4 伸展树的应用举例 7.5 本章习题
第8章 Treap 8.1 Treap的基本操作 8.2 Treap的算法实现 8.3 Treap的应用举例 8.4 本章习题
第9章 平衡树 9.1 AVL树 9.2 红-黑树 9.3 SBT 9.3.1 SBT的基本操作 9.3.2 SBT的效率分析 9.3.3 SBT的算法实现 9.4 本章习题
第10章 块状链表与块状树 10.1 块状链表的基本思想 10.2 块状链表的基本操作 10.3 块状链表的扩张 10.3.1 维护区间和以及区间最值 10.3.2 维护局部数据有序化 10.3.3 维护区间翻转 10.4 块状链表与其他数据结构的比较 10.5 分块思想在树上的应用--块状树 10.6 块状链表的应用举例 10.7 本章习题
第11章 后缀树与后缀数组 11.1 后缀树的简介 11.2 后缀树的定义 11.3 后缀树的构建 11.3.1 后缀树的朴素构建算法 11.3.2 后缀树的线性时间构建算法 11.3.2.1 隐式树的朴素构建 11.3.2.2 扩展规则约定 11.3.2.3 后缀链加速 11.3.2.4 进一步加速 11.3.2.5 后缀树拓展到多串的形式 11.3.2.6 代码实现 11.3.2.7 相关证明 11.4 后缀树的应用 11.4.1 字符串(集合)的精确匹配 11.4.1.1 情形一 11.4.1.2 情形二 11.4.1.3 情形三 11.4.1.4 情形四 11.4.2 公共子串问题 11.4.2.1 情形五 11.4.2.2 情形六 11.4.2.3 情形七 11.4.2.4 情形八 11.4.2.5 情形九 11.4.3 重复子串问题 11.4.3.1 情形十 11.4.3.2 情形十一 11.4.3.3 情形十二 11.5 后缀数组的简介 11.6 后缀数组的定义 11.7 后缀数组的构建 11.7.1 一种直接的构建算法 11.7.2 倍增算法 11.7.2.1 倍增算法描述 11.7.2.2 倍增算法代码 11.7.3 由后缀树得到后缀数组 11.7.4 DC3算法和DC算法 11.7.4.1 DC3算法 11.7.4.2 DC算法 11.8 LCP的引入 11.9 后缀数组的应用 11.9.1 后缀排序的直接应用 11.9.1.1 Burrows-Wheeler变换 11.9.1.2 多模式串的匹配 11.9.2 通过引入LCP优化 11.9.2.1 多模式串的匹配 11.9.2.2 重复子串问题 11.9.2.3 最长回文子串 11.9.2.4 最长公共子串 11.9.3 后缀数组的应用举例 11.10 本章习题
第12章 树链剖分与动态树 12.1 树链剖分的思想和性质 12.2 树链剖分的实现及应用 12.3 动态树的初探 12.3.1 动态树的常用功能 12.3.2 动态树的简单情形 12.4 动态树的实现 12.4.1 动态树的基本操作及其实现 12.4.1.1 动态树的问题模型 12.4.1.2 用Splay维护实路径 12.4.2 动态树操作的时间复杂度分析 12.4.2.1 动态树操作的次数 12.4.2.2 Splay操作的平摊时间 12.5 动态树的经典应用 12.5.1 求最近公共祖先 12.5.2 并查集操作 12.5.3 求最大流 12.5.4 求生成树 12.6 动态树的应用举例 12.7 本章习题
国家统计局5月18日发布了4月份70个大中城市住宅销售价格统计数据。对此,国家统计局城市司高级统计师刘建伟进行了解读。
一、房价环比略有上涨,城市间仍呈分化局面。在3月底楼市新政出台和传统销售旺季等多重因素叠加影响下,4月份70个大中城市新建商品住宅成交继续回升,部分城市房价环比略有上涨。发布的数据显示,4月份70个大中城市新建商品住宅和二手住宅价格环比上涨的城市分别有18个和28个,分别比上月增加了6个和16个;持平和下降的城市个数均有所减少。初步测算,4月份70个大中城市新建商品住宅价格环比综合平均上涨0.3%。
分城市看,分化仍然较为明显,房价上涨主要集中在一线城市和少数二线城市。4月份北京、上海、广州、深圳4个一线城市新建商品住宅和二手住宅价格环比均出现上涨,最高涨幅分别为1.8%和2.4%,少数二线城市房价出现上涨,绝大部分三线城市房价仍然下降。据测算,4月份一线城市新建商品住宅价格环比平均上涨1%,二、三线城市新建商品住宅价格环比平均分别下降0.1%和0.3%。
二、房价同比降幅收窄。绝大部分城市房价同比仍然下降,但随着部分城市房价环比上涨,4月份房价同比降幅总体略有收窄。其中,新建商品住宅价格降幅比上月收窄的城市有15个,比上月增加12个;二手住宅价格降幅比上月收窄的城市有22个,比上月增加11个。