经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
 计算机原理
顺序与链式二叉树的原理与实现(万字)

顺序与链式二叉树的原理与实现(万字)

目录一、树概念及结构树的概念树的相关概念树的表示二、二叉树概念及结构概念特殊的二叉树二叉树的性质二叉树的存储结构三、二叉树的顺序结构及实现二叉树的顺序结构堆的概念及结构堆的实现堆向下调整算法堆的创建建堆时间复杂度堆的插入堆的删除堆的代码实现Heap.hHeap.c堆的应用堆排序堆排序代码实现He...[2024/8/7]

用【游乐场】说清楚“硬件、操作系统、跨平台、应用软件、开发语言、代码”的关系

经常有小伙伴对一些计算机技术和概念不太清楚,产生很多误区,甚至张冠李戴,在一起聊天时又很难给对方解释清楚,经过苦思冥想,终于想到一些比喻,能够很好地阐述了“硬件、操作系统、跨平台、应用软件、开发语言、代码”之间的关系。 1、硬件 陆地(Intel)与海洋(AMD):硬件就像是一个广阔的自然环境...[2024/7/22]

一文全懂:独立冗余磁盘阵列(RAID)

一文全懂:独立冗余磁盘阵列(RAID)

独立冗余磁盘阵列,也就是大家常说的RAID,英文全称是:Redundant Array of Independent Disks,使用该技术,可以大幅提高硬盘设备的 IO 读写速度,还存在数种数据冗余备份机制提供用户选择,能够降低用户数据盘损坏带来的数据丢失的风险。 RAID技术通过把多个硬盘...[2024/7/22]

【操作系统原理】第一章课后习题

前言 课本: 操作系统原理(第五版)[费翔林,骆斌编著] 习题: 主要习题内容是第一章到第六章,具体内容如下表 章节 内容 链接 第一章 思考题1,3,7、应用题7,12(1)~(4) https: blog.csdn.net/Zchengjisihan/article/deta...[2024/7/13]

文件系统(九):一文看懂yaffs2文件系统原理

liwen01 2024.07.07 前言 yaffs 是专为nand flash 设计的一款文件系统,与jffs 类似,都是属于日志结构文件系统。与jffs 不同的是,yaffs 文件系统利用了nand flash 一些特有属性,所以在数据读写擦除和回收上都有较大的差异。 关于jffs2...[2024/7/11]

手绘二维码

手绘二维码

看到二维码,很容易猜到黑白相间的小方格就是二进制比特。那么这些比特是怎么得到的?小方格又是按照什么规则排布的?今天咱们就从零开始将一个 url 画成二维码。 考虑到大多数人可能不太了解二维码,所以先讲下基础概念。你也可以先看看左耳朵耗子写的二维码的生成细节和原理。 版本 二维码一共有 40 ...[2024/6/11]

后端每日一题 2:DNS 解析过程

后端每日一题 2:DNS 解析过程

本文首发于公众号:腐烂的橘子 本文梗概: DNS 是什么,有什么作用 一条 DNS 记录是什么样的 DNS 域名解析原理 DNS 服务器如何抵御攻击 DNS 是什么,有什么作用 DNS(Domain Name System)是一种应用层协议,用于映射域名和 ip 地址。 为什么要做...[2024/4/29]

浅谈端口扫描原理

一、端口扫描简介 端口扫描,顾名思义,就是逐个对一段端口或指定的端口进行扫描。通过扫描结果可以知道一台计算机上都提供了哪些服务,然后就可以通过所提供的这些服务的己知漏洞就可进行攻击。其原理是当一个主机向远端一个服务器的某一个端口提出建立一个连接的请求,如果对方有此项服务,就会应答,如果对方未安装...[2024/4/23]

将彩色图转化为灰度图及其原理介绍

彩色图介绍 彩色图像是一种包含颜色信息的图像,通常由红色、绿色和蓝色(RGB)三个颜色通道组成。这三种颜色通道可以叠加在一起来形成各种不同的颜色。 彩色图像中的每个像素都有三个数值,分别表示红色、绿色和蓝色通道的强度或亮度。这三个数值通常在0到255之间,其中0代表没有该颜色通道的强度,255...[2024/4/23]

【编译原理】手工打造语法分析器

【编译原理】手工打造语法分析器

重点: 语法分析的原理 递归下降算法(Recursive Descent Parsing) 上下文无关文法(Context-free Grammar,CFG) 关键点: 左递归问题 深度遍历求值 - 后续遍历 上一篇「词法分析器」将字符串拆分为了一个一个的 token。 本篇我们将...[2024/4/8]

机器语言编写helloworld

机器语言编写helloworld

kvmtool下载编译 git clone https: github.com/kvmtool/kvmtool.git 下载后进入到目录执行make即可。 补码 计算机怎么表示负数?以四位有符号数为例,使用高位作为符号位,最高位为0表示正数,为1表示负数,其余三位用来表示值。在计算机中,我们将...[2024/4/1]

笔记本为什么不出可升级CPU的,用台式CPU不行吗?

我十几年年前的thinkpad 通过更换cpu复活了:联想ThinkPad E430c i3变i7:笔记本电脑CPU升级思路—CPU参数 为什么现在的市面上可以更换cpu的笔记本非常稀少呢? intel移动CPU1-3代,CPU是和台式机一样的可以更换的。4代以后都是焊死的 什么样的笔记本可...[2024/1/10]

现代 CPU 技术发展

介绍 这篇文章主要是介绍CPU技术的发展,包括最近几十年CPU性能提升和半导体工艺发展,当前技术发展方向。希望可以帮助软件开发者理解CPU指令集和组成运行原理、CPU性能提升的现状和瓶颈、CPU技术发展方向会如何影响软件开发/设计的框架和编程思想。 提示:因为是面向软件开发者,所以会忽略掉一...[2023/12/22]

处理器架构和配置

成功之前我们要做应该做的事情,成功之后我们才可以做喜欢做的事情。 1. 处理器架构 CPU 架构是 CPU 厂商给属于同一系列的 CPU 产品定的一个规范,主要目的是为了区分不同类型 CPU 的重要标示。市面上的 CPU 分类主要分有两大阵营,一个是 intel、AMD 为首的 复杂指...[2023/12/18]

当你打开终端并输入命令时会发生什么?(上)

哈喽大家好,我是咸鱼 参加过校招面试的小伙伴们肯定对下面这道面试题很熟悉:“当你在浏览器输入一段网址后会发生什么?”。这道面试题可以说是很经典了,因为其涉及大量网络协议,可以非常直观的看出小伙伴们对计算机网络体系的整体把握程度 但如果问题换成:“当你打开终端并输入 ls 时会发生什么?”,...[2023/12/15]

老知识复盘-SQL从提交到执行到底经历了什么

一、什么是SQL sql(Structured Query Language: 结构化查询语言)是高级的费过程化编程语言,允许用户在高层数据结构上工作, 是一种数据查询和程序设计语言, 也是(ANSI)的一项标准的计算机语言. but... 目前仍然存在着许多不同版本的sql语言,为了与ANSI...[2023/11/22]

揭秘计算机内部通信:探秘数据、地址与控制信号的奥秘

引言 在我们前面的讲解中,我们详细了解了计算机系统的核心组件,包括CPU、内存和磁盘。然而,总线在这个体系中同样至关重要。总线是计算机内部各部件间通信的桥梁,涉及数据、地址和控制信号的传输。在接下来的内容中,我们将深入探讨各种类型的总线,为你解析计算机系统的关键组成部分。 总线 计算机是由五大...[2023/10/25]

数据结构与算法 | 二叉树(Binary Tree)

二叉树(Binary Tree) 二叉树(Binary Tree)是一种树形数据结构,由节点构成,每个节点最多有两个子节点:一个左子节点和一个右子节点。 public cla TreeNode { int val; TreeNode left; ...[2023/10/23]

揭秘计算机指令执行的神秘过程:CPU内部的绝密操作

计算机指令 从软件工程师的角度来看,CPU是执行计算机指令的逻辑机器。计算机指令可以看作是CPU能够理解的语言,也称为机器语言。 不同的CPU能理解的语言不同。例如,个人电脑使用Intel的CPU,苹果手机使用ARM的CPU。这两种CPU支持的语言不同。这些不同CPU支持的语言被称为不同的指令...[2023/10/23]

探索CPU的黑盒子:解密指令执行的秘密

引言 在我们之前的章节中,我们着重讲解了CPU内部的处理过程,以及与之密切相关的数据总线知识。在这个基础上,我们今天将继续深入探讨CPU执行指令的相关知识,这对于我们理解计算机的工作原理至关重要。 CPU 是一系列寄存器的集合体 我们以使用的 Intel CPU 为例,其中包含数百亿个晶体管。...[2023/10/23]

从算盘到云计算:计算机发展的壮丽历程

早期的计算器 在计算机发展史上,早期的计算器起到了重要的作用。而其中最早的计算器便是算盘。算盘是古代中国人使用的一种计算工具,它由一根木棍和一些珠子组成。通过将珠子在木棍上移动,人们可以进行简单的加减乘除运算。虽然算盘的计算速度较慢,但它的使用简单易懂,成为了古代计算的主要工具。 随着时间...[2023/10/19]

位图(bitmap)原理以及实现

大家好,我是蓝胖子,我一直相信编程是一门实践性的技术,其中算法也不例外,初学者可能往往对它可望而不可及,觉得很难,学了又忘,忘其实是由于没有真正搞懂算法的应用场景,所以我准备出一个系列,囊括我们在日常开发中常用的算法,并结合实际的应用场景,真正的感受算法的魅力。 今天,我们就来学习下位图b...[2023/9/20]

计算器思想-中缀表达式转化为后缀表达式

计算机思维和人的思维的不同 对于一个算式3+2*(4-3)/5 人的思维是根据括号和符号优先级,优先计算括号中的数据,在进行乘法和除法,在处理加法运算 但是计算机的思维是线性的,计算机会按照算式的前后顺序,从前往后进行运算,这样会导致运算结果错误 计算机如何套用人的运算思维 想要让计算机具...[2023/9/15]

浅谈“文件与文件流”的区别

文件与文件流的区别(自己的话):        在软件开发过程中,我们常常把文件的“读写操作”,与“创造、移动、复制、删除操作”区分开来。其中,文件的“读写操作”是由System.IO命名空间下fileStream类控制的。而文件的“创造、移动、复制、删除...[2023/9/10]

探索计算机的I/O控制方式:了解DMA控制器的作用与优势

I/O控制方式 在前面我们已经了解到,每个设备都配备了一个设备控制器。当CPU向设备控制器发送命令并将其存储在寄存器中时,设备控制器会执行相应的操作。然而,尽管设备控制器会更新状态寄存器的状态,但是如何将这些信息传达给CPU呢? 在设备控制器的寄存器中,通常会有一个状态标志位,用于指示输入或输...[2023/9/10]

解密键盘输入:探索设备控制器的奥秘

解密键盘输入:探索设备控制器的奥秘

流程初探 键盘是我们最常用的输入硬件设备之一。作为程序员,你知道当我们敲击键盘上的字母"A"时,操作系统会发生什么吗?下面我将简要介绍整个过程,以便你更容易理解为什么需要这些组件。 首先,让我们来看看CPU的硬件架构图。 CPU内部的内存接口需要通过系统总线和I/O桥接器与内存建立连接。...[2023/9/9]

Set Concept

Set Concept

集合(Set)就是一种用来装事物的容器(或者称为结构),它所装的东西叫元素。集合这个容器的逻辑性很强,可以说是现在比较严谨的工具。 集合里的元素,它们可以是任何类型的数学对象:数字、符号、变量、空间中的点、线、面,甚至是其他集合,当然它也可以不是数学对象,一些其他事物。 规定: 元素通...[2023/8/29]

算法学习(一)—— 如何看待数据结构与算法

算法学习(一)—— 如何看待数据结构与算法

绪言 最近在通过阅读K神的《Hello 算法》学习数据结构与算法的知识,同时做一些博客笔记记录,方便日后的查找和复习 算法 数据结构与算法统称算法 认识算法 算法更多的是一种逻辑,例如: 查阅字典的原理与二分查找算法相一致。二分查找体现了分而治之的重要算法思想。 整理扑克的过程与插...[2023/7/28]

[爬虫]1.1.2 网络爬虫的工作原理

[爬虫]1.1.2 网络爬虫的工作原理

网络爬虫(Web Crawler),也被称为网页蜘蛛(Spider),是一种用来自动浏览互联网的网络机器人。其主要目标通常是为搜索引擎创建复制的网页内容,但它们也可以被用于其他目的,比如数据挖掘。 现在,我们一起来深入理解一下网络爬虫的工作原理。整个过程可以被大致分为四个步骤: 发送HTTP...[2023/7/24]

二叉堆原理与实现

二叉堆原理与实现

二叉堆 二叉堆具有两个性质, 结构性和排序性. 结构性质 堆是一棵被完全填满的二叉树, 叫做完全二叉树, 除了底层以外都被填满了, 而最底层从左到右填入了. 以上图为例, 1是小顶堆, 2是大顶堆, 3是小顶堆, 4不是堆. 这种完全二叉树并不一定被填满, 为什么要被称作是完全二叉树呢...[2023/7/24]

抽象语法树AST必知必会

抽象语法树AST必知必会

1 介绍 AST 打开前端项目中的 package.json,会发现众多工具已经占据了我们开发日常的各个角落,例如 JavaScript 转译、CSS 预处理、代码压缩、ESLint、Prettier 等。这些工具模块大都不会交付到生产环境中,但它们的存在于我们的开发而言是不可或缺的。 有没有...[2023/7/21]

一文搞懂 x64 IA-64 AMD64 Inte64 IA-32e 架构之间的关系

想要搞清楚 x64、IA64、AMD64 指令集之间的关系,就要先了解 Intel 和 AMD 这两家公司在生产处理器上的发展历史。 x86 处理器 1978年 Intel 生产了它的第一款 16bit 处理器8086,之后几款处理器名字也都以86结尾,包括80186,80286...[2023/5/4]

CS144 计算机网络 Lab1:Stream Reassembler

前言 上一篇博客中我们完成了 Lab0,使用双端队列实现了一个字节流类 ByteStream,可以向字节流中写入数据并按写入顺序读出数据。由于网络环境的变化,发送端滑动窗口内的数据包到达接收端时可能失序,所以接收端收到数据之后不能直接写入 ByteStream 中,而是应该缓存下来并按照序号重组...[2023/4/21]

面试官:服务器最大可以创建多少个tcp连接以及端口并解释下你对文件句柄的理解

转载请注明出处:   1.最大可以创建多少个tcp连接   服务器最大可以创建多少个TCP连接取决于多个因素,例如服务器的硬件配置、网络带宽、操作系统设置等。一般来说,现代服务器的硬件资源和网络带宽都比较充足,因此可以创建大量的TCP连接。然而,服务器在创建TCP连接时也会有一些限制,例如操...[2023/4/14]

socket 到底是个啥

  哈喽大家好,我是咸鱼   我相信大家在面试过程中或多或少都会被问到这样一个问题:你能解释一下什么是 socket 吗   我记得我当初的回答很是浅显:socket 也叫套接字,用来负责不同主机程序之间的网络通信连接,socket 的表现方式由四元组(...[2023/4/14]

2.1万字,30张图详解操作系统常见面试题(收藏版)

耗时两周,新版的操作系统常见知识点/问题总结总算搞完了,手绘了30多张图。大家可以用来复习操作系统或者准备操作系统面试。对于大部分公司的面试来说基本够用了,不过,像腾讯、字节这种大厂的面试还是要适当深入一些。 这篇文章总结了一些我觉得比较重要的操作系统相关的问题比如 用户态和内核态、系统调...[2023/4/14]

为什么计算机对浮点型数字计算存在误差

为什么计算机对浮点型数字计算存在误差? 我们输入的十进制小数在计算机中都是以二进制进行存储。比如: 我们把0.25转换为二进制 0.25 * 2 = 0.5 取0 0.50 * 2 = 1.0 取1 所以十进制0.25的二进制应当为0.01 但是我们把0.3转换为二进制存储 0.3 * ...[2023/4/12]

Http请求get与post请求方式的各种相关面试总结

转载请注明出处:   GET方法和POST方法是两种HTTP请求方法,GET方法通过URL传递参数,可以缓存,但参数长度有限,一般用于获取资源;POST方法通过表单传递参数,不能缓存,参数长度没有限制,一般用于提交数据。 1. GET和POST方法的区别   1.数据传递方式:GET方法的...[2023/4/12]

CPU内部的奥秘:代码是如何被执行的?

我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。 本文作者:景明 我们以一段 C 代码为例,来看一下代码被编译成二进制可执行程序之后,是如何被 CPU 执行的。 在这段代码中,只是做了非常简单的加法操...[2023/3/31]

从宏观上理解计算机网络模型-坐在直升机上看网络

大家好,我是风筝 今天是轻解计算机网络系列第一解,从宏观上了解网络。主要介绍网络分成模型、基本传输过程。 学习任何一种新技术都应该是这样的顺序,先从宏观上了解这门技术的基本原理和作用。这就好像生物学家研究一种生物,不能上来就解刨吧,一定是从整体上观察了这种生物的体貌和形态。这里的宏观就像是一...[2023/3/17]

一文带你吃透操作系统

目录1. 进程、线程管理2. 内存管理3. 进程调度算法4. 磁盘调度算法5. 页面置换算法6. 网络系统7. 锁8. 操作系统知识点 文章字数大约1.9万字,阅读大概需要65分钟,建议收藏后慢慢阅读!!! 1. 进程、线程管理 进程和线程基础知识 进程:进程是系统进行资源分配和调度...[2023/3/15]

重学了计算机网络,略有小成,经验全部分享出来

重学了计算机网络,略有小成,经验全部分享出来

公众号「古时的风筝」,专注于后端技术,尤其是 Java 及周边生态。文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在里面。 大家好,我是风筝。 重学计算机网络已经有一段时间了,终于在离开大学多年后又重新拾起了一部分,时至今日已略有小成,并且写...[2023/2/24]

位运算与二进制表示集合

位运算与二进制表示集合 位运算 运算符 运算 运算符 数学符号表示 解释 与 & &、\(and\) 只有两个对应位都为 \(1\) 时才为 \(1\) 或 \(|\) \(|\)、\(or\) 只要两个对应位有一个 \(1\) 时就为 \(1\) 异或 ^ ...[2023/2/20]

微机原理与系统设计笔记6 | 存储器系统设计

微机原理与系统设计笔记6 | 存储器系统设计

打算整理汇编语言与接口微机这方面的学习记录。本部分介绍存储器及其扩展方法。 参考资料 西电《微机原理与系统设计》周佳社 西交《微机原理与接口技术》 课本《汇编语言与接口技术》王让定 小甲鱼《汇编语言》 1. 存储器的分类 外存:磁盘、U盘、光盘等,外存严格来说属于IO...[2023/2/20]

DNS 是如何影响你冲浪速度的?

本文详细介绍了 DNS 相关知识,包括 DNS 工作原理、如何提升域名解析速度、以及 DNS 记录与报文等内容。 1. 域名与域名服务器 在日常上网过程中,出于好记的原因,人们更喜欢在浏览器中输入网站的域名,而不是 IP 地址。比如想要访问百度,则会输入 www.baidu.com ,而不...[2023/2/2]

过年回去,终于给老人讲清楚两台电脑是如何通信的

过年回去,终于给老人讲清楚两台电脑是如何通信的

摘要:本文将从小白的角度,讲解两台计算机之间是如何精确的找到对方的位置并发送和接收消息的,以从宏观角度把握计算机网络的体系结构。 本文分享自华为云社区《两台计算机之间究竟是如何通信的?》,作者:龙哥手记。 计算机网络的知识点非常杂乱且琐碎,非常容易让人产生畏惧心理。其实计网通篇研究的核心就是不...[2023/2/1]

计算机中数值和字符串怎么用二进制表示?

计算机中数值和字符串怎么用二进制表示?

作者:小牛呼噜噜 | https: xiaoniuhululu.com 计算机内功、JAVA底层、面试、职业成长相关资料等更多精彩文章在公众号「小牛呼噜噜」 大家好,我是呼噜噜。我们都知道现代计算机采用 0 和 1 组成的二进制,来表示所有的信息。那大家是不是有时候会有这些疑问:为什么计...[2023/1/28]

不懂编译原理?本文教你从零实现最简编译模型!

简介 前两日我偶然间在 GitHub 上发现了一个项目:the-super-tiny-compiler,官方介绍说这可能是一个最简的编译器。刚好之前学过「编译原理」这门课,我的兴趣一下子就上来了,简单看了一下,这个项目是将一个 Lisp 表达式转化为 C 的表达式的编译器,中间涉及词法分析、语法...[2023/1/18]

CPU 和 CPU Core 有啥区别?多核 CPU?多个 CPU?

CPU 全称 Central Proce ing Unit,中央处理器,计算机的大脑,长这个样子: CPU 通过一个插槽安装在主板上,这个插槽也叫做 CPU Socket,它长这个样子: 而我们说的多核 CPU,一个 CPU 有几个核,这个核就是 Core 其实在很久之前是没有 ...[2022/12/12]

深入浅出OSI七层参考

深入浅出OSI七层参考

本篇博客是笔者阅读《图解TCP/IP》所记录下的笔记,有兴趣的朋友可以去看一看这本书。 OSI七层参考模型 ? 本小节以电子邮件通信为例,分别来阐述OSI七层模型的每一层是如果进行通信处理的。 ? 假定用户 A要给用户B发一封电子邮件 “早上好!”,在用户A和用户B的通信过程中,网络是如...[2022/12/12]

143
2
记录数:90 页数:1/212下一页尾页
 友情链接:直通硅谷  点职佳
加载更多