From 2831ae73de0058149045a6111ea658dd725a914a Mon Sep 17 00:00:00 2001 From: mmdapl <2237221210@qq.com> Date: Sat, 9 Apr 2022 01:09:36 +0800 Subject: [PATCH] init 408 docs --- .DS_Store | Bin 10244 -> 10244 bytes docs/.vuepress/config.js | 36 +- docs/.vuepress/config/nav.js | 40 ++- docs/.vuepress/config/sidebar.js | 8 +- docs/.vuepress/public/assets/408_favicon.ico | Bin 0 -> 16958 bytes docs/.vuepress/styles/palette.less | 0 docs/.vuepress/styles/style.less | 5 + .../Readme.md | 9 + docs/{ComputerNetwork => CN}/Readme.md | 9 + .../README.md => DS/README11.md} | 8 +- docs/DS/Readme.md | 110 ++++++ docs/DS/basic_introduction.md | 328 ++++++++++++++++++ .../basic_introduction/1.basic_concepts.md | 7 + .../2.three_elements_of_data_structure.md | 10 + .../3.algorithm_and_algorithm_evaluation.md | 10 + .../basic_introduction/basic_introduction.png | Bin .../basic_introduction.xmind | Bin docs/DS/linear_table.md | 66 ++++ .../1.basic_concept_and_operation.md | 10 + .../2.sequential_representation.md | 10 + .../linear_table/3.chain_representation.md | 10 + .../linear_table/4.double_linked_list.md | 10 + .../linear_table/5.circular_list.md | 10 + .../linear_table/6.static_linked_list.md | 10 + ...ison_of_sequential_list_and_linked_list.md | 10 + .../8.selection_of_storage_structure.md | 10 + .../9.piecemeal_knowledge_supplement.md | 10 + docs/DS/sidebar_contents.js | 14 + docs/{OperatingSystem => OS}/Readme.md | 5 +- docs/README.md | 69 +++- docs/category/README.md | 8 +- docs/category/about_author.md | 6 + docs/category/reader_donate.md | 6 + docs/category/test/1.test.md | 10 + docs/category/update_logs.md | 8 +- package.json | 3 +- 36 files changed, 829 insertions(+), 36 deletions(-) create mode 100644 docs/.vuepress/public/assets/408_favicon.ico create mode 100644 docs/.vuepress/styles/palette.less create mode 100644 docs/.vuepress/styles/style.less rename docs/{ComputerComposePrinciple => CCP}/Readme.md (66%) rename docs/{ComputerNetwork => CN}/Readme.md (66%) rename docs/{DataStructure/README.md => DS/README11.md} (99%) create mode 100644 docs/DS/Readme.md create mode 100644 docs/DS/basic_introduction.md rename docs/{DataStructure => DS}/basic_introduction/1.basic_concepts.md (95%) rename docs/{DataStructure => DS}/basic_introduction/2.three_elements_of_data_structure.md (96%) rename docs/{DataStructure => DS}/basic_introduction/3.algorithm_and_algorithm_evaluation.md (96%) rename docs/{DataStructure => DS}/basic_introduction/basic_introduction.png (100%) rename docs/{DataStructure => DS}/basic_introduction/basic_introduction.xmind (100%) create mode 100644 docs/DS/linear_table.md rename docs/{DataStructure => DS}/linear_table/1.basic_concept_and_operation.md (94%) rename docs/{DataStructure => DS}/linear_table/2.sequential_representation.md (98%) rename docs/{DataStructure => DS}/linear_table/3.chain_representation.md (98%) rename docs/{DataStructure => DS}/linear_table/4.double_linked_list.md (92%) rename docs/{DataStructure => DS}/linear_table/5.circular_list.md (94%) rename docs/{DataStructure => DS}/linear_table/6.static_linked_list.md (90%) rename docs/{DataStructure => DS}/linear_table/7.comparison_of_sequential_list_and_linked_list.md (92%) rename docs/{DataStructure => DS}/linear_table/8.selection_of_storage_structure.md (89%) rename docs/{DataStructure => DS}/linear_table/9.piecemeal_knowledge_supplement.md (89%) create mode 100644 docs/DS/sidebar_contents.js rename docs/{OperatingSystem => OS}/Readme.md (76%) diff --git a/.DS_Store b/.DS_Store index bc55ff6be0d12a731272a6f529ac42de44c01c92..e90fa1576421233e0467155f2679036ecf143a08 100644 GIT binary patch delta 241 zcmZn(XbG6$&uFkQU^hRb!DJo*N9NyVd6NSKBv=bs1ML@0&J~b`vU&w%_-j5e009d_ z3PV0aGDGoX2f=<06LU))1w#YF$@|2d>fus3>4w3{`MCuk^^E2UKFHc~^Icq$a`Kaa zVjQ{?roWy1>yRU=dC@u>w%FD^mO9u)vZeAnsl6Nz^!Y`J| NilXA1mkGaN0sxWsK==Rv delta 73 zcmZn(XbG6$LAU^hRb)?^+5N9Ipwe@_k&kYIHaP3B!VIafd$%IX!6VJ<9S*eoaX Zl6PZ65#wfdgRZxuVp1OR>O7+3%R diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 648f1f3..2a15cef 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -4,25 +4,47 @@ * @Author: 【B站&公众号】Rong姐姐好可爱 * @Date: 2021-01-19 08:04:19 * @LastEditors: 【B站&公众号】Rong姐姐好可爱 - * @LastEditTime: 2022-04-08 00:05:39 + * @LastEditTime: 2022-04-09 00:23:18 */ module.exports = { theme:"antdocs", - title: "408CSFamily", - description: "A lightweight creator for VuePress project.", + // theme:"vdoing", // 测试主题 + title: "计算机应试全家桶", + description: "磨刀不误砍柴工,读完硕士再打工", base: "/408CSFamily/", head: [ - ["link",{ rel: "icon",href: "/assets/logo.png" }] + ["link",{ rel: "icon",href: "/assets/408_favicon.ico" }] ], markdown: { - lineNumbers: false, + lineNumbers: true, // 显示行号 + // extractHeaders:['h2','h3'],// 左侧标签级别 }, themeConfig: { smoothScroll: true, nav: require("./config/nav"), sidebar: require("./config/sidebar"), - lastUpdated: "Last Updated", - repo: "https://github.com/zpfz/vuepress-creator", + lastUpdated: "最近更新", + repo: "https://github.com/mmdapl", editLinks: false, + backToTop: true, + sidebarDepth: 1, + // sidebar: 'auto',// 自动生成侧栏 + displayAllHeaders: false, // 默认值:false + searchMaxSuggestions: 10,// 搜索框显示的搜索结果数量 + ads:{ + style: 2, + // speed: 2000, + image: 'https://cdn.jsdelivr.net/gh/lir0115/images@main/qr_code/gongzhonghao.jpg', + text: '来公众号交个朋友吧~', + link: 'https://space.bilibili.com/350937042', + + } }, + // 插件 + plugins: [ + // 全文搜索 + ['@vuepress/search', { + searchMaxSuggestions: 10 + }] + ] }; \ No newline at end of file diff --git a/docs/.vuepress/config/nav.js b/docs/.vuepress/config/nav.js index e9ae628..fff402f 100644 --- a/docs/.vuepress/config/nav.js +++ b/docs/.vuepress/config/nav.js @@ -4,26 +4,42 @@ * @Author: 【B站&公众号】Rong姐姐好可爱 * @Date: 2021-01-19 08:04:19 * @LastEditors: 【B站&公众号】Rong姐姐好可爱 - * @LastEditTime: 2022-04-08 00:07:29 + * @LastEditTime: 2022-04-09 00:27:32 */ module.exports = [ - // Nav 1 + // { + // text: "考研规划", + // link: "/DS1/" + // }, + { + text: "算法", + link: "/CN/" + }, { text: "数据结构", - link: "/DataStructure/" - }, - // Nav 2 - { - text: "计算机组成原理", - link: "/ComputerComposePrinciple/" + link: "/DS/" }, { text: "操作系统", - link: "/OperatingSystem/" + link: "/OS/" }, { - text: "计算机网络", - link: "/ComputerNetwork/" - } + text: "计组", + link: "/CCP/" + }, + + { + text: "计网", + link: "/CN/" + }, + { + text: "思维导图", + link: "/CN/" + }, + { + text: "重要资料", + link: "/CN/" + }, + ]; diff --git a/docs/.vuepress/config/sidebar.js b/docs/.vuepress/config/sidebar.js index f51f286..c313422 100644 --- a/docs/.vuepress/config/sidebar.js +++ b/docs/.vuepress/config/sidebar.js @@ -4,11 +4,11 @@ * @Author: 【B站&公众号】Rong姐姐好可爱 * @Date: 2021-01-19 08:04:19 * @LastEditors: 【B站&公众号】Rong姐姐好可爱 - * @LastEditTime: 2022-04-07 23:53:58 + * @LastEditTime: 2022-04-08 23:29:11 */ module.exports = { - "/category/": require("../../category/sidebar_contents"), - "/DataStructure/": require("../../category/sidebar_contents"), - "/计算机网络/":require("../../category/sidebar_contents") + // "/category/": require("../../category/sidebar_contents"), + // "/DataStructure/": require("../../category/sidebar_contents"), + "/DS/":require("../../DS/sidebar_contents") }; diff --git a/docs/.vuepress/public/assets/408_favicon.ico b/docs/.vuepress/public/assets/408_favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..839b6d7640745a10ceabc221bc93486d2cca85ff GIT binary patch literal 16958 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 G3j7zia)ZAB literal 0 HcmV?d00001 diff --git a/docs/.vuepress/styles/palette.less b/docs/.vuepress/styles/palette.less new file mode 100644 index 0000000..e69de29 diff --git a/docs/.vuepress/styles/style.less b/docs/.vuepress/styles/style.less new file mode 100644 index 0000000..562b3d2 --- /dev/null +++ b/docs/.vuepress/styles/style.less @@ -0,0 +1,5 @@ + +.footer-bottom { + font-size:14px!important; + border-top: none!important; +} \ No newline at end of file diff --git a/docs/ComputerComposePrinciple/Readme.md b/docs/CCP/Readme.md similarity index 66% rename from docs/ComputerComposePrinciple/Readme.md rename to docs/CCP/Readme.md index fd1b882..4170e52 100644 --- a/docs/ComputerComposePrinciple/Readme.md +++ b/docs/CCP/Readme.md @@ -1,3 +1,12 @@ +--- +title: Readme +date: 2021-03-08 10:09:25 +permalink: /pages/c12319/ +categories: + - ComputerComposePrinciple +tags: + - +--- +--- +title: 开始阅读 +sidebarDepth: 1 +--- + +## 写在最前面 + + + + + +这份《薛定谔的Egg.js》文档,是我考虑很久之后,才决定要整理出来的,在这上面倾注了很多时间 + + +- 也不知道有没有用 +- 也不知道能不能整理完 +- 更不知道对你会不会有所帮助 + + +但愿我们都能在此有所收获,放手开始吧!! + + +最后,仅以“**祷以恒切, 盼以喜乐,苦以坚忍,必有所得**”,共勉~ + + +--- + + +## 阅读须知 + + +- 该部分为框架基础,是基于[Egg.js官网](https://eggjs.org/zh-cn/)和自己使用体验进行整理汇总,难免会存在重复部分。 +- 若在阅读、学习过程中发现与官网描述有所差异,可以立即与我联系进行确认与更改。 +- **文档用于个人整理和技术学习,禁止无授权转载、商用。** + + + + + +## 技术支持 + +- [Egg.js官网](https://eggjs.org/zh-cn/) +- [VuePress](https://www.vuepress.cn/guide) +- [AntDocs](https://antdocs.seeyoz.cn/guide/) + + + +## 适用群体 + + +- 默认已了解过[ES6](https://es6.ruanyifeng.com/)语法和部分Node后端框架([Express](https://www.expressjs.com.cn/)、[Koa](https://koa.bootcss.com/))。 +- 具有一定JavaScript开发基础,对JavaScript开发有浓烈兴趣。 +- **已有Egg.js开发经验,但细节用法不胜了解的,非常适合用来查缺补漏。** + + +## 资料共享 + +> 链接失效可以关注公众号或私信获取"链接" + +## 参考资料 + +- 大话数据结构 - 程杰 +- 数据结构复习全书 - 王道论坛 +- 视频教程 - 王道论坛 + +--- + +### 联系我 + +- 有任何问题或建议,欢迎微信“骚扰”,商务合作请备注! + +
+ +
+ + + +# + +### 公众号 + + +- 相逢不用忙归去,明日黄花蝶也愁.... + +- **若系列文章对你有所帮助,不如来公众号交个朋友吧.** + + + + + + + + + + diff --git a/docs/DS/basic_introduction.md b/docs/DS/basic_introduction.md new file mode 100644 index 0000000..514947f --- /dev/null +++ b/docs/DS/basic_introduction.md @@ -0,0 +1,328 @@ +--- +title: 基础入门 +--- + + + + + +## 基础概念 + +### 数据 + +**信息的载体**,是客观事物属性的数、字符以及所有能够输入到计算机包中并且被计算机程序识别和处理的**集合** + +### 数据元素 + +**数据的基本单位**,通常按照一个整数来进行考虑和处理。 + + +特别注意:一个数据元素由若干个**数据项**组成,数据项是构成数组元素的最小单位,且不可分割。 + + + +### 数据对象 + +具有**相同性质**的数据元素的**集合**,**是数据的子集** + + +### 数据类型 + +值的集合和定义在此集合上一组操作的总称 + +- 原子类型:不可再分的数据类型; +- 结构类型:可以分解成若干分量(成分)的数据类型; +- **抽象数据类型**:抽象出具组织和其相关的操作; + + + +### 抽象数据类型(ADT) + +> Tips: 可以结合高级语言中类对象封装来理解; + +```bash +ADT抽象数据类型名{ + 数据对象:<数据对象的定义> + 数据关系:<数据关系的定义> + 基本操作:<基本操作的定义> +} ADT抽象数据类型名 +``` + + + +一个数学模型以及定义在该模型上的一组操作。定义仅仅取决于它的一组逻辑操作。与计算机内部如何表示和实现是没有关系; + +**不论内部结构如何变化,只要其数学特性不变,就不会影响到外部的使用,实现了数据封装和信息隐藏** + + +通常由(数据对象、数据关系、数据操作集)三元组来表示抽象数据类型; + +抽象数据类型的主要作用是**数据封装和信息隐藏,让实现与使用相分离**。数据及其相关操作的结合称为数据封装。对象可以对其他对象隐藏某些操作细节,从而使这些操作不会受到其他对象的影响。 + +抽象数据类型独立于运算的具体实现,使用户程序只能通过抽象数据类型定义的某些操作来访问其中的数据,实现了信息隐藏。 + + +### 数据结构 + + +首先明确:数据元素都不是孤立存在的。元素与元素之间存在着某种关系,这种相互之间的关系就是**结构**。 + +**数据结构是相互之间存在一种或者多种特定关系的数据元素的集合** + +- 逻辑结构 +- 存储结构(物理结构) +- 数据运算 + +数据的逻辑结构和存储结构是密不可分的。 + +**算法的设计取决于所选定的逻辑结构;算法的实现依赖于所采用的存储结构;** + + +--- + +## 数据结构三要素 + +- 数据的逻辑结构 +- 数据的存储结构 +- 数据的运算 + + +### 数据的逻辑结构 + +数据元素之间的逻辑关系,从逻辑关系上描述数据,叫做数据的逻辑结构。 + +与数据的存储(物理)结构无关,是独立于计算机的。 + +可以分为: + +- 线性结构 +- 非线性结构 + + +线性表是典型的线性结构,衍生出的栈、队列、串、数组、广义表也都是线性结构; + +非线性结构主要有:集合、树(一般树、二叉树)、图(有向图、无向图) + + +特别注意: + +- `集合`:结构中的数据元素之间**除了“同属于一个集合”的关系外,别无其他关系。** +- `线性结构`:结构中的数据元素之间**只存在一对一的关系**。 +- `树形结构`:结构中的数据元素之间**存在一对多的关系。** +- `图状结构和网状结构`:结构中的数据元素之间**存在多对多的关系。** + + + +### 数据的存储(物理)结构 + +数据结构在计算机中的表示(映像)。包括数据`元素的表示`和`关系的表示`。 + +存储结构是逻辑结构用计算机语言实现的,依赖于计算机语言。 + + +可以分为: + +- 顺序存储 +- 链式存储 +- 索引存储 +- 散列(Hash)存储 + +**注意:存储和存取的概念不一样** + +#### 顺序存储 + +**逻辑上相邻的元素存储在物理位置上也相邻的存储单元里,元素之间的关系由存储单元的邻接关系来体现。** + +优点: + +- 可以实现随机存取 +- 元素占用最少的存储空间 + +缺点: + +- 只能使用相邻的一整块存储单元,依赖于物理结构相邻; +- 容易产生`外部碎片` + +什么是内外部碎片? + +> 参考资料:https://blog.csdn.net/qq_22238021/article/details/80209062 + +- 外部碎片:`还没有分配出去`(不属于任何进程),但是**由于大小而无法分配给申请内存空间的新进程的内存空闲块。** +- 内部碎片:`已经被分配出去`(能明确指出属于哪个进程)的**内存空间大于请求所需的内存空间,不能被利用的内存空间就是内部碎片。** + + +#### 链式存储 + +与顺序存储不同,**链式存储不要求逻辑上相邻的元素在物理位置上也相邻。** + +借助指示元素存储地址的`指针`表示元素之间的逻辑关系。 + + +优点: + +- 不会出现碎片现象 +- 充分利用所有存储单元 + +缺点: + +- 除了存储元素外,还需要额外存储指针,会占用额外的存储空间(结合数据库索引学习)。 +- 链式存储,**只能实现`顺序存取`,不能实现`随机存取`(指针的遍历)** + + +#### 索引存储 + +存放数据元素和元素间关系的存储方式,在存储元素信息的同时,还需要建立附加的`索引表`。 + +**索引表的每一项称为索引项,索引项的一般形式是:<关键字,地址>** + +优点: + +- 检索快(就好比字典有了目录,查询就很快了) + + +缺点: + +- 增加了索引表,占用较多的存储空间(典型的空间换时间策略) +- 增加、删除数据时,需要对应修改索引表,花费更多时间。 + +#### 散列(Hash)存储 + +根据元素的关键字直接通过散列(Hash)函数计算出元素的存储地址。 + + +优点: + +- 检索快,添加、删除元素结点操作快(获取元素地址直接,整体时间就少了) + + +缺点: + +- 非常依赖于`散列函数` +- 会出现`散列冲突`(主要依赖与散列函数,散列函数不好就很容易出现散列冲突) +- 出现`散列冲突`时,解决冲突就会增加时间和空间上的开销 + + +### 数据的运算 + +数据上的运算包括:`运算的定义` 、`运算的实现` + +- `运算的定义`:针对逻辑结构,指出运算的功能 +- `原酸的实现`:针对存储结构,指出运算的具体操作步骤 + + + + +线性表既可以用顺序存储方式实现,也可以用链式存储方式实现。 + + +--- + +## 算法和算法评价 + + +### 算法 + +`算法` : 对特定问题求解步骤的一种描述,**是指令的有序集合**,每一条指令表示一个或多个操作。 + + +#### 重要特性 + +- `有穷性`:必须总是(对任何合法的输入值)在**执行有穷步后结束**,并且每一步都可**在有穷时间内完成** +- `确定性`:每条指令的含义明确,不会产生二义性(歧义),**对相同的输入只能得出相同的结果** +- `可行性`:算法是可行的。**算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现的** +- `输入`:有零个或者多个输入,**输入取决于某个特定的对象的集合。** +- `输出`:有一个或者多个输出,**输出是和输入有着某种特定关系的量(强调输出与输入的关系)** + + +> **算法是有穷的,但是程序不一定满足有穷性**,程序只是算法在计算机上的特定的实现, 例如:死循环 + +#### 算法的目标 + +由于设计思路、解决问题方案等方面不同,不同算法之间也是有好坏的,就像人与人之间存在着差异。为设计出更好的算算法,往往需要追求更高的目标,而好的算法需要考虑到的目标就有: + +- 正确性:首先算法肯定是**需要正确的解决求解问题** +- 可读性:**算法应该具有良好的可读性**,就像项目代码一样,好的业务代码、逻辑清楚,**便于理解**。 +- 健壮性:**在输入非法数据时,算法也能适当地做出反应或进行处理,而不会产生莫名奇妙的输出结果**(在高级语言编程中,类似于强调封装方法的参数校验) +- 效率与低存储量需求:**效率即算法执行的时间**,**存储量需求即算法那执行过程中所有要的最大存储空间**,这些与算法所解决问题的规模有关; + + +> Tips: 效率可以结合时间复杂度来理解,存储量需求可以结合空间复杂度理解; + + +### 效率的度量 + +算法效率的度量是通过`时间复杂度`和`空间复杂度`来描述的; + +#### 时间复杂度 + +语句的频度:语句在算法中被重复执行的次数 + +算法中所有语句的`频度之和`记作T(n),即:对应算法问题规模n的函数,时间复杂度主要是来分析T(n)的数量级; + +**算法的时间复杂度不仅依赖于问题的规模n,也取决于待输入的数据的性质(例如:输入元素的初始状态)** + +上面这句话是不是不能理解??? 哈哈哈,我第一次看,也是!! + +```c + +int test(n) { + if(n< 1){ + return 0; + } + // 循环叠加 输出 + ..... +} + + + +``` +在这个简单的函数里 + +- 当n<1的时候,例如:-2,就不需要循环,此时时间复杂度可以理解为T(1) +- 当n>1的时候,例如:5 此时时间复杂度可以理解为T(n) + +当然,这里只是简单举例子便于理解: + +> **算法的时间复杂度不仅依赖于问题的规模n,也取决于待输入的数据的性质(例如:输入元素的初始状态)** + + + +- `最坏时间复杂度`:**最坏情况下**,算法的时间复杂度 +- `平均时间复杂度`:**所有可能输入实例在同等概率出现的情况下**,算法的期望运行时间 +- `最好时间复杂度`:**最好的情况下**,算法的时间复杂度 + + +一般情况下,考虑最坏情况的时间复杂度(即:最坏时间复杂度),保证算法的运行时间不会更长(最糟糕我都能预料,难道还有更糟糕?????噗呲) + +#### 空间复杂度 + +算法的空间复杂度可以用函数记作:S(n),**用来定义算法运行过程中需要耗费的存储空间**,是问题规模n的函数; + +> 渐进空间复杂度也被称为空间复杂度,记作:S(n)=O(g(n)) + + +**一个程序除了需要存储空间来存放本身所用的指令、常数、变量和输入数据外,也需要对数据进行操作的工作单元和存储一些实现计算所需要信息的辅助空间。** + +当输入数据所占用的空间只取决于问题本身,和算法无关时,只需要去分析除了输入和程序之外的额外空间 + + + +算法原地工作:算法所需要辅助空间是常量,记作S(1),例如: + +```c +int switchValue(a,b){ + // 定义临时变量 + int temp=a; + b=temp; + a=b; +} +``` + +在上面的函数中,只是通过临时变量temp来实现a和b的值交换,没有需要更多变量,因此可以简单理解函数的在`原地工作`,辅助空间是常量,记作S(1) diff --git a/docs/DataStructure/basic_introduction/1.basic_concepts.md b/docs/DS/basic_introduction/1.basic_concepts.md similarity index 95% rename from docs/DataStructure/basic_introduction/1.basic_concepts.md rename to docs/DS/basic_introduction/1.basic_concepts.md index a7593d2..3c06257 100644 --- a/docs/DataStructure/basic_introduction/1.basic_concepts.md +++ b/docs/DS/basic_introduction/1.basic_concepts.md @@ -1,5 +1,12 @@ --- title: test +date: 2021-03-07 21:54:07 +permalink: /pages/53976b/ +categories: + - DataStructure + - basic_introduction +tags: + - --- + + + + + +## 基础概念和基本操作 + +> 强调线性表是一种逻辑结构,不是存储结构 + + +### 定义 + +线性表是具有相同数据类型的n(n≥0)个数据元素的有限序列。一般表示: + +L=(a1,a2,a3......an) 其中n可以理解为表长(线性表的长度),n=0时候,即表空 + + +- `表头元素`:线性表中唯一的“第一个”数据元素,例如a1 +- `表尾元素`:线性表中唯一的“最后一个”数据元素,例如an + + +重要逻辑特性: + +- 除表头元素外,线性表中每个元素有且仅有一个`直接前驱` +- 除表尾元素外,线性表中每个元素有且仅有一个`直接后继` + +基于此,这种**线性有序的逻辑结构**,使得线性表的特点如下: + +- 元素的**个数有限**(强调有限序列) +- 元素在逻辑上具有**顺序性**,在序列中每个元素都是都有先后次序的 +- 元素都数据元素,**每个元素都是单个元素** +- 元素的**数据类型都相同**(强调相同数据类型),每个数据元素占用相同大小的存储空间 +- 元素具有**抽象性**,仅仅讨论元素之间的逻辑关系,不需要去考虑元素究竟表示的什么内容 + + +> Tips: **线性表是一种逻辑结构**,表示元素之间一对一的相邻关系。**顺序表和链表则指的是存储结构** + + + +### 基本操作 + +- `InitList(&L)`: **初始化表**。构造空的线性表 +- `Length(L)`:**获取表的长度**。返回线性表L的长度,即表中的数据元素个数 +- `LocateElem(L,e)`:**按值查找操作**。在表L中国查找具有给定关键字的元素 +- `GetElem(L,i)`:**按位查找操作**。获取表中第i个位置的元素的值 +- `ListInsert(&L,i,e)`:**插入操作**。在表的第i个位置上插入指定元素e +- `ListDelete(&L,i,&e)`:**删除操作**。删除表中第i个位置的元素,并用e返回删除元素的值 +- `PrintList(L)`:**输出操作**。按照前后顺序(如:1、2....n)输出线性表的所有元素值 +- `Empty(L)`:**判空操作**。当表L为空,则返回true,否则返回false +- `DestoryList(&L)`:**销毁操作**。将线性表销毁,释放线性表L所占用的内存空间(类似:释放内存) + + +线性表是具有相同的数据类型的有限个数据元素组成的,**数据元素是由数据项组成的** + + diff --git a/docs/DataStructure/linear_table/1.basic_concept_and_operation.md b/docs/DS/linear_table/1.basic_concept_and_operation.md similarity index 94% rename from docs/DataStructure/linear_table/1.basic_concept_and_operation.md rename to docs/DS/linear_table/1.basic_concept_and_operation.md index 90fd4b4..3df2dfb 100644 --- a/docs/DataStructure/linear_table/1.basic_concept_and_operation.md +++ b/docs/DS/linear_table/1.basic_concept_and_operation.md @@ -1,3 +1,13 @@ +--- +title: basic_concept_and_operation +date: 2021-03-07 21:57:27 +permalink: /pages/924aed/ +categories: + - DataStructure + - linear_table +tags: + - +--- diff --git a/docs/README.md b/docs/README.md index 89c6cc4..607d600 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,16 +1,69 @@ --- home: true -heroImage: /assets/logo.png +heroImage: https://static01.imgkr.com/temp/f0108d7c178b4ce196e43ebec14fbf23.png actionText: 一起开始→ actionLink: /category/ features: -- title: Lightweight - details: Without adding too many components or dependencies, code redundancy will not be generated by pruning. -- title: Out-of-the-box - details: It's very friendly to novices. You can download and write without too much configuration. -- title: Customizable - details: All the necessary files have been created. You can add the functions you want directly to the configuration file. -footer: MIT Licensed | Copyright © 2020 Feng Left-Handed +- title: 基础概览 + details: 与官网同步的Egg.js框架基础知识整理,有效地降低日常开发和复习巩固的查询、学习时间。 +- title: 整理强化 + details: 官方插件的基础上,抽象、封装出适合自己功能的plus插件,能够快速集成、使用在新的项目中。 +- title: 反复反复 + details: 通过以项目Demo示例的方式,对框架常用的功能进行Code编写和整理,提供有效且易用的代码封装。 + +footerColumn: 3 +footerWrap: +- headline: 相关资料 + items: + - title: 王道论坛 + link: https://github.com/zpfz/vuepress-theme-antdocs + details: 全平台都可以关注 + - title: 研招网 + link: https://github.com/zpfz/vuepress-theme-antdocs + details: 考研最新消息 +- headline: 开源共享 + items: + - title: axios + link: https://github.com/zpfz/vuepress-theme-antdocs + details: egg-axios-plus + - title: grpc + link: https://github.com/zpfz/vuepress-theme-antdocs + details: egg-grpc-plus + - title: mysql + link: https://github.com/zpfz/vuepress-theme-antdocs + details: egg-mysql-plus + - title: sequelize + link: https://github.com/zpfz/vuepress-theme-antdocs + details: egg-sequleize-plus + - title: MQ + link: https://github.com/zpfz/vuepress-theme-antdocs + details: egg-rabbit-plus +- headline: 线上平台 + items: + - title: Oauth2 + link: http://oauth2.142vip.cn + details: 授权管理 + - title: Yapi + link: https://yapi.142vip.cn + details: 高效、易用的api平台 +- headline: 联系方式 + items: + - title: 掘金 + link: https://juejin.cn/user/448256476724807 + details: 不定期更新 + - title: CSDN + link: https://blog.csdn.net/Mmdapls + details: 不定期更新 + - title: Github + link: https://github.com/mmdapl + details: 日常更新 + - title: 哔哩哔哩 + link: https://space.bilibili.com/350937042 + details: 不定期更新 +# 百度统计 +footer: Copyrights © 2019-2022 妍荣姑娘网络工作室 | Rong姐姐好可爱 --- + + diff --git a/docs/category/README.md b/docs/category/README.md index 0caa7a4..1ee6b85 100644 --- a/docs/category/README.md +++ b/docs/category/README.md @@ -1,5 +1,11 @@ --- -title: +title: null +date: 2021-01-19 08:04:19 +permalink: /pages/add102/ +categories: + - category +tags: + - --- diff --git a/docs/category/about_author.md b/docs/category/about_author.md index 7aec3ff..d723819 100644 --- a/docs/category/about_author.md +++ b/docs/category/about_author.md @@ -1,6 +1,12 @@ --- title: 关于作者 sidebarDepth: 0 +date: 2021-01-19 08:04:19 +permalink: /pages/15aa63/ +categories: + - category +tags: + - ---