I HAVE A PLAN
MY PLANS这篇博客的说明
这篇博客是记录我的所有计划以及idea的地方,以下为比克的章节解释:
PLAN num
digest 计划的描述,计划或者说为一个project,项目。简要说明一下这个project。
timeline
时间线,用来记录计划的完成情况,每次计划有所进展或者想写有关的事情就可以在对应的timeline区域顺序增加。记得加上时间戳(年月日时分, eg:202107011449)
PLAN 1 cosdigest写一个操作系统,计划是按照郑刚的那本操作系统真相还原照猫画虎的写出一个操作系统,之后学习更多有关操作系统开发的知识,做出一个有自己特色的操作系统,特色我还没有想好,毕竟现在知识面太窄了,啥都不会。
timeline
time: 202107011449
写一个操作系统,现在写了到了中断部分,不过因为期末考试以及考研的额事情已经耽搁了好长时间,我预计在考研之前可以照猫画虎的写出一个操作系统。
time: 202107011449 (测试用,记得删掉)
写一个操作系统,现在写了到了中断部分,不过因为期末考试以及考研的额事情已经耽搁 ...
数据结构 三 栈
栈栈,依靠线性表来实现。
ADT
构造一个空栈
销毁一个栈
清空栈
判断栈是否为空
栈中元素个数
获得栈顶元素
push
pop
遍历栈
栈的顺序表实现接口说明123456789101112131415161718192021222324252627282930313233343536#include "../Linear-List/linearlist.c"//stack 可以直接使用 list 作为基础构建不同的stack 其实list就是所有线性数据结构的基础。//我觉得之前的list的实现很不优雅,所以决定再重新实现一遍//要学会抓住事情的主要矛盾,学习栈就是要学习其后进先出的思想,现在不要管其他杂乱的东西。typedef struct LinearStack{ //存储数据的区域 这里的block就相当于linearlist 中的List struct LinearList *block; Item *base; Item *top; //当前长度 int length; //当前分配的存储容量 ...
微机期末复习之知识总结
微机期末复习之知识总结第一章QUS简答
处理器字长:处理器单位时间内可以处理的二进制位数。
总线信号分为哪三种:数据总线、地址总线、控制总线
取指译码执行周期是指什么:从主存储器读取指令、翻译指令代码的功能、执行指令所需要的操作。
判断
IA-64结构是IA-32结构的64位扩展,也就是Intel64 结构? ×
微机主存只要使用RAM芯片就足够了? ×
大题
什么是通用微处理器、单片机(微控制器)、DSP芯片、嵌入式系统?
通用微处理器:适合较广领域的微处理器芯片,例如装在笔记本上的。
单片机:是指通常用于控制领域的微处理器芯片,其内部除了CPU外还集成了计算机的主要部件,只需要配上少量外部电路和设备就可以工作。
DSP芯片:数字信号处理器,也是一种微控制器,其更加适合处理高速的数字信号,内部集成有告诉的乘法器,能够进行乘法和加法运算。
嵌入式系统:利用微控制器、数字信号处理器或者通用微处理器结核病具体应用构成的控制系统。
区分:类路径、绝对路径、相对路径、当前目录。
路径:操作系统以目录的形式管理磁盘上的文件,文件所在的分区和目录就是该文件的路径。
绝对路径:从根目录 ...
微机期末复习之实验源代码
微机期末复习之实验源代码11.212345678910111213141516171819202122232425262728293031323334include io.inc.model small.stack.data.codestart: mov ax,@data mov ds,ax mov ax,0d000h;段地址 mov es,ax mov bx,6000h;偏移地址 mov cx,5fh;字符个数 mov dx,20h;ASCII开始字符;写入ASCII表write: mov es:[bx],dx inc bx inc dx cmp dx,7fh jnz write mov bx,6000h;读出ASCII表read: mov ax,es:[bx] call dispc inc bx loop read .exit 0 end start
44.1123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 ...
数据结构 二 线性表
线性表 新的实现更新日期:202107021044
链表在ADT一节中已经实现过了,不过实现的并不是特别的完善,只是一个ADT的使用例子而已,现在正式地将链表进行实现。本系列参考数据结构严蔚敏c语言版、c primer plus、STL进行实现
ADT
构造一个空线性表
销毁一个线性表
清空线性表
判断线性表是否为空
获得线性表中元素的个数
获得特定位置元素
返回第一个满足关系的元素位置
返回某元素的前驱
返回某元素的后继
再特定位置插入元素
删除特定位置的元素
使用特定的函数遍历所有元素
线性表的顺序实现接口说明由于c语言不支持c++那样的引用操作,所以我的实现和教材上略有不同。
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152//线性表 重新实现#include <stdio.h>#include <stdbool.h>#include <stdlib.h>#include <time.h>t ...
数据结构 一 抽象数据类型ADT
抽象数据类型ADT计算机科学领域已开发了一种定义新类型的好方法,用 3 个步骤完成从抽象到具体的过程。
提供类型属性和相关操作的抽象描述。这些描述既不能依赖特定的实现,也不能依赖特定的编程语言。这种正式的抽象描述被称为抽象数据类型 (ADT)。
开发一个实现 ADT 的编程接口。也就是说,指明如何储存数据和执行所需操作的函数。例如在 C中,可以提供结构定义和操控该结构的函数原型。这些作用于用户定义类型的函数相当于作用于 C 基本类型的内置运算符。需要使用该新类型的程序员可以使用这个接口进行编程。
编写代码实现接口。这一步至关重要,但是使用该新类型的程序员无需了解具体的实现细节。
建立ADT的步骤实践 以链表为例建立抽象链表应该实现以下功能。
初始化一个空链表
再链表结尾添加一个新的项
判断链表是否为空
判断链表是否已经满了
确定链表中的元素个数
访问链表中的项 例如数组的 [] 运算符和指针的 -> 运算符
在链表中的任意位置添加一个项
移除链表中的任意一项
更替链表中的某一项
在链表中搜索一个项 根据某个数据找到对应的项比如最大值
建立接口数据隐藏是一种从编程的更高层次 ...
计算机网络期末复习
计算机网络期末复习第一章 概述电路交换:整个报文的比特流连续地从源点直达终点,就好像在一个管道中传送。报文交换:整个报文先传送到相邻结点,全部存储下来之后,查找转发表,转发到下一个结点。分组交换:单个分组(整个报文的一部分)传送到相邻结点,存储下来后查找转发表转发到下一个结点。
广域网:WAN城域网:MAN局域网:LAN个人区域网:PAN
计算机网络的性能指标:
速率
比特率
带宽
信号具有的频带宽度(频域)
单位时间内网络通道可以通过的最高数据率
吞吐量
单位时间内通过某个网络的实际数据量。
时延 总时延=以下四种时延相加
发送时延=数据帧长度/发送速率
传播时延=信道长度/电磁波在信道上的传输速率
处理时延
排队时延
时延带宽积
时延带宽积=传播时延*带宽 表示传输管道的体积,链路可以容纳的比特数量。又称为以比特为单位的链路长度
RTT
双向交互一次需要的时间
利用率
d=D/(1-U) d代表网络当前时延,D代表网络空闲时的时延,U是网络的利用率
计算机网络体系结构:
应用层
应用层是体系结构中 ...
leedcode 初级算法 链表
leedcode 初级算法 链表链接
删除链表中的节点题目解析请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。
题目解析懒得解析了
删除链表的倒数第N个节点题目描述给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
进阶:你能尝试使用一趟扫描实现吗?
题目解析 方法一为头节点head建立一个前驱结点heeaad,这样就不怕只有head一个结点的情况了。先遍历一遍链表得到链表的长度,再从heeaad遍历链表,r->next,指向的是当前应该删除的结点。记住不要让r指向当前应该删除的结点,不然含需要一个r的前驱节点。
123456789101112131415161718192021222324252627282930313233class Solution{public: int getLength(ListNode *head) { int length = 0; while (head) { length+ ...
leedcode 初级算法 字符串
leedcode 初级算法 字符串链接
反转字符转题目说明编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。
题目解析懒得解析了。
12345678910111213class Solution{public: void reverseString(vector<char> &s) { int i = 0; int j = s.size() - 1; while (i < j) { swap(s[i++], s[j--]); } }};
整数反转题目说明给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231 ...
C++ STL
C++ STLc语言中文网的STL教程
stl 是一个将算法与底层抽象实现相分离的库,通过它我们可以很轻松地,高效地实现很多复杂的算法。但是学习stl不仅仅要学习其使用方式,更重要的是学习其底层实现,若是掌握了其底层实现逻辑,则不仅拥有了扎实的数据结构的基本功,更是在c++修仙之路上修炼了一本武林秘籍。
c++ stl 的头文件有:
12345678910111213<iterator> <functional> <vector> <deque> <list> <queue> <stack> <set> <map> <algorithm> <numeric> <memory> <utility>
stl提供三种标准容器,分别为序列容器,排序容器,哈希容器。后两种也称为关联容器。
容器种 ...
leedcode 初级算法 数组
leedcode 初级算法 数组链接
删除排序数组中的重复项题目说明给你一个有序数组nums请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组 并在使用 O(1) 额外空间的条件下完成。
题目解析使用两个索引,i和ji指向基元素j指向比较元素若两个元素不相等的话就说明中间与元素i相等的元素全部略过了,之后只要将元素j的值赋予元素i的下一个元素就行。别忘了更新索引的值。最后结果就是i的值加一。本题不需要删除多余重复的额元素。由0到i就是得到新的数组。
ac代码12345678910111213141516171819class Solution {public: int removeDuplicates(vector<int>& nums) { int i=0; int j=0; int n=nums.size(); if(n==0) return 0; w ...
学百年党史,做红色传人
一百年来,中国共产党从小到大、由弱到强,一路艰辛、一路奋斗,在中华民族的历史上谱写了前所未有的辉煌篇章,在人类发展史上创造了世所罕见的伟大奇迹。在我们党的百年发展历程中,有无数感天动地的红色故事,正是这一个个生动精彩的故事,构成了一部波澜壮阔、气壮山河的党的史诗。中国共产党带领着中国人民高举着中国特色社会主义伟大旗帜稳步迈向中华民族伟大复兴新征程。农业是大国的立国之本,中国是一个十几亿人口的大国,要有坚实的农业基础。务农重本,国之大纲。对于我国这样一个人口众多的大国来说,解决好吃饭问题始终是治国理政的头等大事。新中国成立以来,在我们党的领导下,我国粮食生产在不懈探索和制度创新中取得新突破、实现新跨越。习近平总书记指出:“农业是基础性产业,中国现代化离不开农业现代化。”“农业农村现代化是实施乡村振兴战略的总目标,坚持农业农村优先发展是总方针,产业兴旺、生态宜居、乡风文明、治理有效、生活富裕是总要求,建立健全保障城乡融合发展体制机制和政策体系是制度保障。”回望历史,中国共产党成立后,充分认识到中国革命的基本问题是农民问题,把为广大农民谋幸福作为重要使命。改革开放以来,我们党领导亿万农民率先 ...