diff --git a/408/数据结构/5 数组与广义表/5 数组与广义表.md b/408/数据结构/5 数组与广义表/5 数组与广义表.md new file mode 100644 index 0000000..c456529 --- /dev/null +++ b/408/数据结构/5 数组与广义表/5 数组与广义表.md @@ -0,0 +1,172 @@ +# 第 5 章 数组与广义表 + +## 一、基本内容 + +数组的类型定义和表示方式;特殊矩阵和稀疏矩阵的压缩存储方法及运算的实现;广义表的逻辑结构和存储结构、$m$ 元多项式的广义表表示以及广义表的操作的递归算法举例。 + +## 二、学习要点 + +1. 了解数组的两种存储表示方法,并掌握数组在以行为主的存储结构中的地址计算方法。 +2. 掌握对特殊矩阵进行压缩存储时的下标变换公式。 +3. 了解稀疏矩阵的两种压缩存储方法的特点和适用范围,领会以三元组表示稀疏矩阵时进行矩阵运算采用的处理方法。 +4. 掌握广义表的结构特点及其存储表示方法,读者可根据自己的习惯,熟练掌握任意一种结构的链表,学会对非空广义表进行分解的两种分析方法:即可将一个非空广义表分解为表头和表尾两部分或者分解为 $n$ 个子表。 +5. 学习利用分治法的算法设计思想编制递归算法的方法。在下列这组习题中,第一类习题对应教科书5.1和5.2节C语言风格的数组存储分配和元素地址计算(各维下界为 0);第二类习题是推导特殊矩阵实现各种压缩存储时的下标变换公式;第三类习题涉及稀疏矩阵的各种压缩存储方法;第四类习题帮助读者熟悉广义表的存储结构和表头、表尾的分析方法;第五类习题则是为学习编写递归算法而安排的。 + +## 三、算法演示内容 + +在 DSDEMO 系统的选单「广义表」下,有以下算法演示: + +- 求广义表的深度(`Ls_Depth`); +- 复制广义表(`Ls_Copy`); +- 遍历广义表(`Ls_Mark`); +- 建立广义表的存储结构(`Crt_Lists`)。 + +## 四、基础知识题 + +### 5.1① 假设有二维数组 $A_{6 \times 8}$,每个元素用相邻的 6 个字节存储,存储器按字节编址。已知 `A` 的起始存储位置(基地址)为 `1000`,计算: + +#### (1)数组 `A` 的体积(即存储量); + +$6 \times 8 \times 6 = 288 (Byte)$。 + +#### (2)数组 `A` 的最后一个元素 $a_{57}$ 的第一个字节的地址; + +$1000 + (6 \times 8 - 1) \times 6 = 1282$。 + +#### (3)按行存储时,元素 $a_{14}$ 的第一个字节的地址; + +$1000 + (2 \times 8 + 4) \times 6 = 1120$。 + +#### (4)按列存储时,元素 $a_{47}$ 的第一个字节的地址。 + +$1000 + (7 \times 6 + 4) \times 6 = 1276$。 + +### 5.2① 假设按低下标优先存储整数数组 $A_{9 \times 3 \times 5 \times 8}$时,第一个元素的字节地址是 `100`,每个整数占四个字节。问下列元素的存储地址是什么? + +#### (1)$a_{0000}$ + +$100$。 + +#### (2)$a_{1111}$ + +$100 + (1 \times 3 \times 5 \times 8 + 1 \times 5 \times 8 + 1 \times 8 + 1) \times 4 = 776$。 + +#### (3)$a_{3125}$ + +$100 + (3 \times 3 \times 5 \times 8 + 1 \times 5 \times 8 + 2 \times 8 + 5) \times 4 = 1784$。 + +#### (4)$a_{8247}$ + +$100 + (8 \times 3 \times 5 \times 8 + 2 \times 5 \times 8 + 4 \times 8 + 7) \times 4 = 4416$。 + +### 5.3① 按高下标优先存储方式(以最右的下标为主序),顺序列出数组 $A_{2 \times 2 \times 3 \times 3}$ 中所有元素 $a_{ijkl}$,为了简化表达,可以只列出 $(i, j, k, l)$ 的序列。 + +```mermaid +graph LR +a0(0) --- b0(0) --- c0(0) --- d0(0) --- e("按高下标优先存储方式(以最右的下标为主序)") +a1(1) --- b0 +a2(0) --- b1(1) --- c0 +a3(1) --- b1 +a4(0) --- b2(0) --- c1(1) --- d0 +a5(1) --- b2 +a6(0) --- b3(1) --- c1 +a7(1) --- b3 +a8(0) --- b4(0) --- c2(2) --- d0 +a9(1) --- b4 +a10(0) --- b5(1) --- c2 +a11(1) --- b5 +A0(0) --- B0(0) --- C0(0) --- D0(1) --- e +A1(1) --- B0 +A2(0) --- B1(1) --- C0 +A3(1) --- B1 +A4(0) --- B2(0) --- C1(1) --- D0 +A5(1) --- B2 +A6(0) --- B3(1) --- C1 +A7(1) --- B3 +A8(0) --- B4(0) --- C2(2) --- D0 +A9(1) --- B4 +A10(0) --- B5(1) --- C2 +A11(1) --- B5 +aa0(0) --- bb0(0) --- cc0(0) --- dd0(2) --- e +aa1(1) --- bb0 +aa2(0) --- bb1(1) --- cc0 +aa3(1) --- bb1 +aa4(0) --- bb2(0) --- cc1(1) --- dd0 +aa5(1) --- bb2 +aa6(0) --- bb3(1) --- cc1 +aa7(1) --- bb3 +aa8(0) --- bb4(0) --- cc2(2) --- dd0 +aa9(1) --- bb4 +aa10(0) --- bb5(1) --- cc2 +aa11(1) --- bb5 +``` + +$$ +\begin{array}{llll} +(0, 0, 0, 0), (1, 0, 0, 0), (0, 1, 0, 0), (1, 1, 0, 0), \\ +(0, 0, 1, 0), (1, 0, 1, 0), (0, 1, 1, 0), (1, 1, 1, 0), \\ +(0, 0, 2, 0), (1, 0, 2, 0), (0, 1, 2, 0), (1, 1, 2, 0), \\ +\\ +(0, 0, 0, 1), (1, 0, 0, 1), (0, 1, 0, 1), (1, 1, 0, 1), \\ +(0, 0, 1, 1), (1, 0, 1, 1), (0, 1, 1, 1), (1, 1, 1, 1), \\ +(0, 0, 2, 1), (1, 0, 2, 1), (0, 1, 2, 1), (1, 1, 2, 1), \\ +\\ +(0, 0, 0, 2), (1, 0, 0, 2), (0, 1, 0, 2), (1, 1, 0, 2), \\ +(0, 0, 1, 2), (1, 0, 1, 2), (0, 1, 1, 2), (1, 1, 1, 2), \\ +(0, 0, 2, 2), (1, 0, 2, 2), (0, 1, 2, 2), (1, 1, 2, 2)。 +\end{array} +$$ + +### 5.4① 将教科书 5.3.1 节中的式(5-3)改写为一个等式的形式。 + +$k = {\frac{max(i, j)[max(i, j) - 1]}{2} + min(i, j) - 1}$。 + +### 5.5③ 设有上三角矩阵 $(a_{ij})_{n \times n}$,,将其上三角元素逐行存于数组 `B[m]` 中(`m` 充分大),使得 $B[k] = a_{ij}$ 且 $k = f_1(i) + f_2(j) + c。试推导出函数 $f_1, f_2$ 和常数 $c$(要求 $f_1$ 和 $f_2$ 中不含常数项)。 + +$k = \frac{(2n + 1 - i)i}{2} + (j - i)$,故 + +### 5.6② 设有三对角矩阵 $(a_{ij})_{n \times n}$,将其三条对角线上的元素存于数组 `B[3][n]` 中,使得元素 $B[u][v] = a_{ij}$,试推导出从 $(i, j)$ 到 $(u, v)$ 的下标变换公式。 + +### 5.7③ 设有三对角矩阵 $(a_{ij})_{n \times n}$,将其三条对角线上的元素逐行地存于数组 `B[3n - 2]` 中,使得 $B[k] = a_{ij}$,求: + +#### (1)用 $i, j$ 表示 $k$ 的下标变换公式; + +#### (2)用 $k$ 表示 $i, j$ 的下标变换公式。 + +### 5.8③ 假设一个准对角矩阵 + +$$ +\left[\begin{array}{cccc} +a_{11} & a_{12}\\ +a_{21} & a_{22}\\ + & & a_{33} & a_{34}\\ + & & a_{43} & a_{44}\\ + & & & & \cdots\\ + & & & & & a_{i, j}\\ + & & & & & & \cdots\\ + & & & & & & & a_{2m - 1,2m - 1} & a_{2m - 1,2m}\\ + & & & & & & & a_{2m, 2m - 1} & a_{2m, 2m} +\end{array}\right] +$$ + +### 按以下方式存于一维数组 `B[4m]` 中: + +| 0 | 1 | 2 | 3 | 4 | 5 | 6 | $\cdots$ | k | $\cdots$ | 4m - 3 | 4m - 2 | 4m - 1 | +| :------: | :------: | :------: | :------: | :------: | :------: | :------: | :------: | :------: | :------: | :--------------: | :--------------: | :----------: | +| $a_{11}$ | $a_{12}$ | $a_{21}$ | $a_{22}$ | $a_{33}$ | $a_{34}$ | $a_{43}$ | $\cdots$ | $a_{ij}$ | $\cdots$ | $a_{2m - 1, 2m}$ | $a_{2m, 2m - 1}$ | $a_{2m, 2m}$ | + +### 写出由一对下标 $(i, j)$ 求 $k$ 的转换公式。 + +$$ +k = \begin{cases} + i + j - 2 & i 为奇数\\ + i + j - 1 & i 为偶数 +\end{cases} 合并成一个公式,可写成 \begin{array}{cccc} + k = i + j - (i \% 2) - 1\\ + 或\\ + k = 2(i \space div \space 2) + j - 1 +\end{array}。 +$$ + + +### 5.9② 已知 $A$ 为稀疏矩阵,试从空间和时间角度比较采用两种不同的存储结构(二 \ No newline at end of file diff --git a/408/计算机网络/README.md b/408/计算机网络/README.md index 7930ed5..d5d7cd5 100644 --- a/408/计算机网络/README.md +++ b/408/计算机网络/README.md @@ -11,7 +11,7 @@ #### 考研修仙 -- 道上人:了解计算机网络的概念及组成,基本功能和重要的分类方式,对于性能指标有大概了解。 +- 道上人:了解计算机网络的概念及组成,基本功能和重要的分类方式,对于性能指标有大概了解。 > 小题:2,3,4,9,15,18 @@ -64,4 +64,69 @@ - 道上仙:不拘泥于公式,可以熟练解决求极限数据率的问题,并能求解编码与调制的相关计算题。 -> 小题:12,13,14,15,17,20,22,23 \ No newline at end of file +> 小题:12,13,14,15,17,20,22,23 + +### 2.1 通信基础(下) + +#### 学习建议 + +- 本节主要讲解主要的数据交换方式,理解起来还是很简单的,主要是要掌握他们各自的优劣势,以及他们之间的相同点和不同点;分 +组交换的计算问题很重要,要多用题目练手帮助理解~ + +#### 考研修仙 + +- 道上人:了解这几种数据交换方式的基本概念和差异~ + +> 小题:25,27,28,30,32,35,36,41 +> 大题:1 + +- 道上佬:熟练掌握几种数据交换方式的使用场景,可以解决部分数据交换的计算题。 + +> 小题:26,31,33,34 +> 大题:3,6 + +- 道上仙:数据交换的计算题可以信手拈来了~ + +> 小题:29,37,38 +> 大题:2,4,5 + +### 2.2 传输介质 + +#### 学习建议 + +- 这节的内容都比较简单,駢不算是考研重点,过去会主要考察导向性传输)质和物理层特性,对于非导向性传输介质也需要好好掌 +握。 + +#### 考研修仙 + +- 道上人:掌握不同传输介质的特性和功能。 + +> 小题:1,2,6,11 + +- 道上佬:物理特性可以清楚地区分,并且对于不同传输介质之间的比较有清晰的认识。 + +> 小题:4,5,7,9,10,12 + +- 道上仙:熟练掌握非导向性传输质的特点。 + +> 小题:3,8 + +### 2.3 物理层设备 + +#### 学习建议 + +- 这是计算机网络学习中遇到的第-层设备,傻傻的中继器和集线器主要实现信号的放大功能,真的很简单,你学会了吗? + +#### 考研修仙 + +- 道上人:清楚物理层两个设备的基本功能:放大后并转发。 + +> 小题:2,4,8,10 + +- 道上佬:了解物理层设备的一些数字指标和简单的带宽计算问题。 + +> 小题:1,5,7,9 + +- 道上仙:熟练掌握两种设备的应用场景和异同点。 + +> 小题:3,6,11 diff --git a/408/计算机网络/笔记/assets/markdown-img-paste-20210417154146182.png b/408/计算机网络/笔记/assets/markdown-img-paste-20210417154146182.png new file mode 100644 index 0000000..14548a8 Binary files /dev/null and b/408/计算机网络/笔记/assets/markdown-img-paste-20210417154146182.png differ diff --git a/408/计算机网络/笔记/assets/markdown-img-paste-20210417154626198.png b/408/计算机网络/笔记/assets/markdown-img-paste-20210417154626198.png new file mode 100644 index 0000000..9ca3221 Binary files /dev/null and b/408/计算机网络/笔记/assets/markdown-img-paste-20210417154626198.png differ diff --git a/408/计算机网络/笔记/assets/markdown-img-paste-20210417154938224.png b/408/计算机网络/笔记/assets/markdown-img-paste-20210417154938224.png new file mode 100644 index 0000000..8032044 Binary files /dev/null and b/408/计算机网络/笔记/assets/markdown-img-paste-20210417154938224.png differ diff --git a/408/计算机网络/笔记/assets/markdown-img-paste-20210417155457361.png b/408/计算机网络/笔记/assets/markdown-img-paste-20210417155457361.png new file mode 100644 index 0000000..c6abb09 Binary files /dev/null and b/408/计算机网络/笔记/assets/markdown-img-paste-20210417155457361.png differ diff --git a/408/计算机网络/笔记/assets/markdown-img-paste-20210417160814791.png b/408/计算机网络/笔记/assets/markdown-img-paste-20210417160814791.png new file mode 100644 index 0000000..02ac978 Binary files /dev/null and b/408/计算机网络/笔记/assets/markdown-img-paste-20210417160814791.png differ diff --git a/408/计算机网络/笔记/assets/markdown-img-paste-20210417162018540.png b/408/计算机网络/笔记/assets/markdown-img-paste-20210417162018540.png new file mode 100644 index 0000000..3e2c9d0 Binary files /dev/null and b/408/计算机网络/笔记/assets/markdown-img-paste-20210417162018540.png differ diff --git a/408/计算机网络/笔记/assets/markdown-img-paste-20210417162227505.png b/408/计算机网络/笔记/assets/markdown-img-paste-20210417162227505.png new file mode 100644 index 0000000..00711ac Binary files /dev/null and b/408/计算机网络/笔记/assets/markdown-img-paste-20210417162227505.png differ diff --git a/408/计算机网络/笔记/assets/markdown-img-paste-20210417162617962.png b/408/计算机网络/笔记/assets/markdown-img-paste-20210417162617962.png new file mode 100644 index 0000000..53c8233 Binary files /dev/null and b/408/计算机网络/笔记/assets/markdown-img-paste-20210417162617962.png differ diff --git a/408/计算机网络/笔记/assets/markdown-img-paste-20210417162828258.png b/408/计算机网络/笔记/assets/markdown-img-paste-20210417162828258.png new file mode 100644 index 0000000..b13fddd Binary files /dev/null and b/408/计算机网络/笔记/assets/markdown-img-paste-20210417162828258.png differ diff --git a/408/计算机网络/笔记/assets/markdown-img-paste-20210417163836513.png b/408/计算机网络/笔记/assets/markdown-img-paste-20210417163836513.png new file mode 100644 index 0000000..542b29c Binary files /dev/null and b/408/计算机网络/笔记/assets/markdown-img-paste-20210417163836513.png differ diff --git a/408/计算机网络/笔记/assets/markdown-img-paste-20210417185229216.png b/408/计算机网络/笔记/assets/markdown-img-paste-20210417185229216.png new file mode 100644 index 0000000..60990fd Binary files /dev/null and b/408/计算机网络/笔记/assets/markdown-img-paste-20210417185229216.png differ diff --git a/408/计算机网络/笔记/数据交换方式.md b/408/计算机网络/笔记/数据交换方式.md new file mode 100644 index 0000000..0e01d7c --- /dev/null +++ b/408/计算机网络/笔记/数据交换方式.md @@ -0,0 +1,175 @@ +# 数据交换方式 + +$$ +\begin{array}{cccc} + 电路交换\\ \\ + 存储转发交换方式 + \begin{cases} + 报文交换\\ + 分组交换 + \begin{cases} + 数据报方式\\ + 虚电路方式 + \end{cases} + \end{cases} +\end{array} +$$ + +### 电路交换(Circuit Exchanging) + + + +**电路交换的原理**:在数据传输期间,源结点与目的结 点之间有一条由中间结点构成的专用物理连接线路,在数据传输结束之前,这条线路一直保持。 + +**电路交换的阶段**: + +$$ +建立连接(呼叫/电路建立)\to 通信(数据传输) \to 释放连接(拆除电路) +$$ + +**特点**:独占资源,用户始终占用端到端的固定传输带宽。适用于远!程批处理信息传输或系统间实时性要求高的大量数据传输的情况。 + +电路交换优点 | 电路交换缺点 +--- | --- +传输时延小 | 建立连接时间长 +数据顺序传送,无失序问题 | 线路独占,即使通信线路空闲,也不能供其他用户使用,信道使用效率低。 +实时性强,双方一旦建立物理通路,便可以实时通信, 适用于交互式会话类通信 | 灵活性差,双方连接通路中的任何一点出了故障,必须重新拨号建立新连接,不适应突发性通信 +全双工通信,没有冲突,通信双方有不同的信道,不会争用物理信道 | 无数据存储能力,难以平滑通信量 +适用于模拟信号和数字信号 | 电路交换时,数据直达,不同类型、不同规格、不同速率的终端很难相互进行通信 +控制简单,电路的交换设备及控制较简单 | 无法发现与纠正传输差错,难以在通信过程中进行差错控制。 + +### 报文交换(Message Exchanging) + +**报文(message)**:报文是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的 完整的数据信息,其长短很不一致,长度不限且可变。 + + + +**报文交换的原理**:无需在两个站点之间建立一条专用通路,其数据传输的单位是报文,传送过程采用存储转发方式。 + +
| 报文交换优点 | +报文交换缺点 | +
|---|---|
| 无需建立连接,无建立连接时延,用户可随时发送报文 | +实时性差,不适合传送实时或交互式业务的数据。数据进入交换结点后要经历存储转发过程,从而引起转发时延 | +
| 动态分配线路,动态选择报文通过的最佳路径,可以平滑通信量 | +只适用于数字信号。 | +
| 提高线路可靠性,某条传输路径发生故障,可重新选择另一条路径传输。 | +由于报文长度没有限制,而每个中间结点都要完整地接收传来的整个报文,当输出线路不空闲时,还可能要存储几个完整报文等待转发,要求网络中每个结点有较大的缓冲区。为了降低成本,减少结点的缓冲存储器的容量,有时要把等待转发的报文存在磁盘上,进一步增加了传送时延。 | +
| 提高线路利用率,通信双方在不同的时间一段一段地 部分占有这条物理通道,多个报文可共享信道。 | +|
| 提供多目标服务:一个报文可同时发往多个目的地址。 | +|
| 在存储转发中容易实现代码转换和速率匹配,甚至收发双方可以不同时处于可用状态。这样就便于类型、 规格和速度不同的计算机之间进行通信。 | +
| 分组交换优点 | +分组交换缺点 | +
|---|---|
| 无建立时延,无需为通信双方预先建立一条专用通信线路,用户可随时发送分组。 | +尽管分组交换比报文交换的传输时延少,但仍存在存储转发时延,而且其结点交换机必须具有更强的处理能力。 | +
| 线路利用率高,通信双方在不同的时间一段一段地部分占有这条物理通道,多个分组可共享信道。 | +每个分组都要加控制信息,一定程度上降低了通信效率,增加了处理的时间。 | +
| 简化了存储管理。因为分组的长度固定,相应的缓冲区的大小也固定,在交换结点中存储器的管理通常被简化为对缓冲区的管理,相对比较容易。 | +当分组交换采用数据报服务时,可能出现失序、丢失或重复分组,分组到达目的结点时,要对分组按编号进行排序等工作,增加了麻烦。若采用虚电路服务,虽无失序问题,但有呼叫建立、数据传输和虚电路释放三个过程。 | +
| 加速传输,后一个分组的存储可以和前一个分组的转发并行操作;传输一个分组比一份报文所需缓冲区小,减少等待发送时间。 | +|
| 减少出错几率和重发数据量,提高可靠性,减少传输时延。 | +|
| 分组短小,适用于计算机之间突发式数据通信。 | +
++信号向所有方向传播
+
较强穿透能力,可传远距离,广泛用于通信领域(如手机通信)。
+++信号固定方向传播
+
| 优点 | +缺点 | +
|---|---|
| 通信容量大 距离远 覆盖广 广播通信和多址通信 |
+传播时延长(250-270 ms) 受气候影响大(eg:强风、太阳黑子爆发、日凌) 误码率较高 成本高 |
+
++信号固定方向传播
+
把要传输的信号分别转换为各自的信号格式,即红外光信号和激光信号,再在空间中传播。
++ +