计算机网络3
数据链路层数据链路层使用的信道主要有以下两种类型:
点对点信道
广播信道
3.1使用点对对信道的数据链路层3.1.2数据链路和帧链路和数据链路并不是一个东西
链路:从一个结点到相邻结点的一段物理线路,中间没有任何交换结点。
数据链路:当需要在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些通信协议利啊控制这些数据的传输。把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
现在最常用的方法是使用网络适配器(如拨号上网使用拨号适配器,通过以太网上网使用局域网适配器)来实现这些协议。一般的适配器都包括了数据链路层和物理层的功能。
规程:早期的数据通信协议曾叫作通信规程,因此在数据链路层,规程和协议是同义语
帧:数据链路层的协议数据但元叫做帧。
数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。在互联网中,网络层协议数据单元就是IP数据报(或简称为数据报,分组或包)
点对点信道的数据链路层通信的主要步骤:
结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧
结点A把封装好的帧发送给结点B的数据链路层
若结点B的 ...
数据结构一
Trie树作用高效地存储和查找字符串集合的数据结构
实现123456789101112131415161718192021222324252627282930int son[N][26], cnt[N], idx;// 0号点既是根节点,又是空节点// son[][]存储树中每个节点的子节点// cnt[]存储以每个节点结尾的单词数量// 插入一个字符串void insert(char *str){ int p = 0; for (int i = 0; str[i]; i ++ ) { int u = str[i] - 'a'; if (!son[p][u]) son[p][u] = ++ idx; p = son[p][u]; } cnt[p] ++ ;}// 查询字符串出现的次数int query(char *str){ int p = 0; for (int i = 0; str[i]; i ++ ) { ...
数据结构一
单链表1234567891011121314151617181920212223242526272829// head存储链表头,e[]存储节点的值,ne[]存储节点的next指针,idx表示当前用到了哪个节点int head, e[N], ne[N], idx;// 初始化void init(){ head = -1; idx = 0;}// 在链表头插入一个数avoid insert(int a){ e[idx] = a, ne[idx] = head, head = idx ++ ;}//将数a插入到下标是k的点后面void add(int k,int a){ e[idx]=a; ne[idx]=ne[k]; ne[k]=idx++; }// 将头结点删除,需要保证头结点存在void remove(){ head = ne[head];}
双链表12345678910111213141516171819202122232425// e[]表示节点的值,l[ ...
一周入门微信小程序开发(第五天)
使用npm包小程序对npm包的支持与限制目前,小程序中已经支持使用npm按照第三方包,从而提高小程序的开发效率。但是,在小程序中使用npm包有如下3个限制:
不支持依赖于Node.js内置库的包
不支持依赖于浏览器内置对象的包
不支持依赖于C++插件的包
注意:虽然npm上的包有千千万,但是能供小程序使用的包却为数不多
Vant Weapp什么是VantWeappVant Weapp是有赞前端团队开源的的一套小程序UI组件库,助力开发者快速搭建小程序应用,它所使用的是MIT开源许可协议,对商业使用比较友好。
官方文档:介绍 - Vant Weapp (youzan.github.io)
安装Vant组件库在小程序项目中,安装Vant组件库主要分为如下几步:
通过npm安装
修改app.json
修改project.config.json
构建npm包
修改app.json
详细操作步骤可参考官方文档:快速上手 - Vant Weapp (youzan.github.io)
使用 Vant 组件安装完 Vant 组件库之后,可以在 app.json 的 usingComponen ...
一周入门微信小程序开发(第四天)
自定义组件组件的创建与引用创建组件
在项目的根目录中,鼠标右键,创建 components -> test 文件夹
在新建的 components -> test 文件夹上,鼠标右键,点击“新建 Component”
键入组件的名称之后回车,会自动生成组件对应的 4 个文件,后缀名分别为 .js,.json, .wxml 和 .wxss
注意:为了保证目录结构的清晰,建议把不同的组件,存放到单独目录中,例如:
引用组件组件的引用方式分为“局部引用”和“全局引用”,顾名思义:
局部引用:组件只能在当前被引用的页面内使用
全局引用:组件可以在每个小程序页面中使用
局部引用组件在页面的 .json 配置文件中引用组件的方式,叫做“局部引用”。示例代码如下:
123456//在.json文件中配置{ "usingComponents": { "my-test1":"/components/test/test" }}
123456<!-- 在.wxml文件中 ...
一周入门微信小程序开发(第三天)
页面导航简介什么是页面导航页面导航指的是页面之间的相互跳转。例如,浏览器中实现页面导航的方式有如下两种:
<a>链接
location.href
小程序中实现页面导航的两种方式
声明式导航
在页面上声明一个<navigator>导航组件
通过点击 <navigator>组件实现页面跳转
编程式导航
调用小程序的导航 API,实现页面的跳转
声明式导航导航到 tabBar 页面tabBar 页面指的是被配置为 tabBar 的页面。在使用<navigator> 组件跳转到指定的 tabBar 页面时,需要指定 url 属性和 open-type 属性,其中:
url 表示要跳转的页面的地址,必须以 / 开头
open-type 表示跳转的方式,必须为 switchTab
示例代码如下:
1<navigator url='/pages/message/message' open-type="switchTab">导航到tabBar页面</navigator&g ...
一周入门微信小程序开发(第二天)
WXML 模板语法数据绑定数据绑定的基本原则
在 data 中定义数据
在 WXML 中使用数据
在 data 中定义页面的数据在页面对应的 .js 文件中,把数据定义到 data 对象中即可:
123456789101112Page({ /** * 页面的初始数据 */ data: { //字符串类型数据 info: 'init data', //数组类型数据 msgList:[{msg:'hello'},{msg: 'world'}] },})
Mustache 语法的格式把data中的数据绑定到页面中渲染,使用 Mustache 语法(双大括号)将变量包起来即可。语法格式为:
1<view>{{要绑定的数据名称}}</view>
Mustache 语法的应用场景Mustache 语法的主要应用场景如下:
绑定内容
绑定属性
运算(三元 ...
一周入门微信小程序开发(第一天)
前言最近出于项目需求,要进行几个小程序开发,然而在此之前,我从未学习过小程序开发。
在b站找了一些学习视频和书籍后,我想趁着这一周有空(考试周结束后,课设周开始前),尝试一下用一周时间学习完小程序开发基础知识,顺便把一学习过程记录记下来,所以就有了这个《一周入门微信小程序开发》系列
虽然说是一周入门,但是实际要花费多少时间是我无法预知的,但是无论如何我还是会完成这个系列。假如说《一周入门微信小程序开发》系列最后写了十几天就尴尬了
小程序代码构成项目结构
pages用来存放所有小程序的页面
utils用来存放工具性质的模块
app.js小程序的入口文件
app.json小程序项目的全局配置文件
app.wxss小程序项目的全局样式文件
project.config.json项目配置文件
sitemap.json用来配置小程序及其页面是否允许被微信索引
小程序页面的组成部分小程序官方建议把所有小程序页面,都存放在pages目录中,以单独的文件夹存在
JSON配置文件
JSON是一种数据格式,在实际开发中JSON总是以配置文件出现
小程序项目中,通过不同的.json配置文件,可以对小程 ...
操作系统学习笔记(五)IO管理
IO设备的基本概念和分类“I/O”就是“输入/输出”(Input/Output)I/O设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备,属于计算机中的硬件部件。
按使用特性分类人机交互的外部设备用于与计算机用户之间交互设备(打印机,鼠标,键盘)
交换速度相对较慢,以字节为单位进行数据交换
存储设备用于存储程序和数据的设备(磁盘、磁带、光盘)
交换速度较快,以多字节组成的块为基本单位交换
网络通信设备用于远程设备通信的设备(网络接口、调制解调器)
速度介于前两类之间
传输速率分类低速设备:每秒进位几个字节到数百字节(鼠标、键盘)
中速设备∶传输速率为每秒数千字节至数万字节(行式打印机、激光打印机)
高速设备:传输速率在数百兆字节至千兆字节的一类设备(磁带机、磁盘机、光盘机)
信息交换单位分类块设备:信息存取总是以数据块为基本单位,存储信息的设备称为块设备传输速率高,可寻址,可以任意读写某块
字符设备:用于数据输入输出的设备为字符设备,传输的基本单位是字符(交互式终端机,打印机)”传输速率低,不可寻址,输入输出时常采用中断驱动方式
IO控制器
IO控制方式
程序直接控制 ...
操作系统学习笔记(四)文件管理
文件管理文件之间应该如何被组织起来(目录结构)
文件应如何存放在外存中(文件的物理结构)
操作系统如何管理外存中的空闲块(存储空间的管理)
操作系统需要提供的其他文件管理功能
文件共享:使多个用户可以共享使用一个文件
文件保护:如何保证不同的用户对文件有不同的操作权限
初识文件管理文件的定义文件:创建者所定义的一组相关信息的集合
记录:一组数据项的集合,用于描述—个对象在某方面的属性
数据项:数据项是文件系统中最低级的数据组织形式
基本数据项:用于描述一个对象的某种属性的一个值
组合数据项:多个基本数据项组成
文件是以计算机硬盘为载体的存储在计算机上的信息集合,文件可以是文本文档、图片、程序等
系统运行时,计算机以进程为基本单位进行资源的调度和分配
在用户输入输出时,以文件为基本单位
操作系统的文件系统:用于实现文件的权限访问,修改,查询和保存等功能
文件的属性文件名、标识符、类型、位置、大小、保护信息…文件内部应该如何被组织起来(文件的逻辑结构)
名称:文件名称唯一,以容易读取的形式保存
标识符:文件的唯一标签,通常为数字,是对人不可读的一种内部名称
类型:被支持的不同类型的文件系统 ...