【HUST】计算机|大学计算机基础内容(纯科普向)+数据结构数组、树、队列【旧文搬运】

最初发布时间:2020-09-19 23:17:48
以前写这篇文章,主要是接触到一些非计算机学院的同学,为了交流方便我写下了这篇文章……虽然现在回过头来看写得也比较草率,但确实是我对电脑的基础操作的最早的认识,放到现在我绝对写不出来哪个功能是最常用的了,因为我觉得哪个功能都常用。

文章目录

    • git
      • 1.下载
      • 2.git内登录github账号
      • 3.github上不太方便而git很方便做的某些事
    • 大学计算机基础
      • 小彩蛋
    • 数组
      • 参考文章
      • 计算元素地址(i、j 均开始于 1)
        • 按列序存放(高下标优先)
      • 参考文章
      • 二叉树
        • 完全二叉树
        • 存储结构
        • 二叉树遍历:
    • 队列
      • 参考文章
      • 总结
      • 非循环队列
      • 循环队列
      • 双端队列(Deque)
      • 优先队列(不遵循 FIFO)

github使用非常简单,和百度一样用就行,也支持下载上传,多看看就能掌握基本操作,暂时不讲,先说git。

git

1.下载

链接:https://pan.baidu.com/s/1-QimGqEr7fLtpfkSP35waA
提取码:b9lm
以上是我自己在用的Git-2.11.1-64-bit。
在官网上下载也行,但是不推荐,因为官网下的也差不多,而且官网常常难以打开难以下载,容易链接失败,点一年都不一定能生成下载链接。(个人体验)
然后按默认选项安装即可

2.git内登录github账号

之后的不赘述,直接给链,廖雪峰大神讲得比我好。由于还在入门,我们只想简单知道git而不是立即搞事情,版本库可以先不建。后面的如何回退也可以不用看。登录成功就行。
https://www.liaoxuefeng.com/wiki/896043488029600/896067074338496

3.github上不太方便而git很方便做的某些事

git clone xxx

xxx是github下载按钮处的链接。
还有的方便的就是用git删文件。直接在本地库上操作,再往上push一下就好了,这种需要建库的事情请继续看廖大佬的教程。
如果看不懂的话,或者说有些基础指令有问题的话,请看下面的有关大学计算机基础的教程。

大学计算机基础

链接:https://pan.baidu.com/s/1-QimGqEr7fLtpfkSP35waA
提取码:b9lm
以上还有我们计算机基础的课件。
这个是讲cmd之类的东西的,很多东西都是依赖这些指令的,所以建议随便看看用用。
其实吧,说起来就这么几条指令必用:

cd ..
cd Desktop
dir 

第一条,退回上一级目录;
第二条,去下一级名字叫做Desktop也就是桌面的目录;
第三条,展示当前目录下的所有文件。

为什么说这三条是必备的,而不是删除之类的呢?
第一二条让你便捷地前后跳转,而第三条让你知道你现在能去哪。

一级一级跳转有时候属实不便,所以建议再会一条指令,cd 绝对路径

绝对路径:假设你已知能去的地方是长沙,同时假设最大的描述词是地球,绝对路径就是地球的中国的湖南的长沙。如E:\资料\大物\大物实验。
相对路径:假设你在中国,你想去长沙,相对路径就是湖南的长沙。如大物\大物实验。

前后跳转以及随便翻找就是我认为的文件结构了。

小彩蛋

  1. win+R -> 输入taskmgr ->方便清理后台进程,检查恶意弹窗广告,还电脑清净。
  2. 在系统变量里的环境变量里添加某个文件夹,之后就可以直接用win+R并输入这个文件夹的相对路径,访问这个文件夹的内容。也就是,如果把快捷方式全部放到一个文件夹里并且为它添加环境变量,就可以用键盘呼出应用和资料,不需要鼠标点点点,也不用把快捷方式放桌面上

暂时想到这么多,之后再补充。【补充的都在网盘里了,可以自己看】


接下来顺便再贴另一篇文章,我懒得贴成两篇了,内容量不够。

数组

参考文章

计算元素地址(i、j 均开始于 1)

  • 主要是要分析出该元素前面有多少个(记为 n)元素,分析出来了即可知道下标为 n,LOC(i)=LOC(0)+size(L)*n。
  • 分析过程:以行序或列序优先将矩阵中的元素依次排列。以按行序优先排列为例,假设 k 元素在第 i 行,则前面应至少有 x 个元素,再假设 k 在第 j 列,在当前行中前面应再有 y 个元素,从而得到 k 元素与 i、j 的对应关系。
按列序存放(高下标优先)
  • 对于 Am*n,有 LOC(i,j)=LOC(0,0)+(j*m+i)*sizeof(L)。
  • 对于 Aabc,有 LOC(i,j,k)=LOC(0,0)+(k*a*b+j*a+i)*sizeof(L)。
  • 同理可推至 n 维数组。

参考文章

  • 非线性,一对多。(定义是递归形式的)

  • 根(根结点的层为 1)、根的子树、结点的度(结点的子树数目)、叶子结点(也叫终端节点)、分支节点、双亲(虽然叫双亲但是 parent 只有一个)、树的深度(又称高度,叶子结点的层数)、兄弟、堂兄弟(同层不同双亲的结点)、祖先、子孙(所有子树的结点)、有序树(子树的顺序从左到右有限定,更换则不是同一颗树)、无序树。

  • 森林:m 棵互不相交的数的集合,如 F={T1,T2,T3},任何一棵非空树可表示为 Tree=(root,F),F 是子树森林。

    因为 root 根结点被拆掉了之后剩下的子树就散了互不相交可以看作森林)

二叉树

  • 递归定义:根节点,左子树右子树。每个结点的孩子是不会重复的。
  • 每个结点至多两个子树,是有序树。
  • 叶子结点的个数 n0=度为 2 的结点数 n2+1。(不直观,需要记)

总数 n=n0+n1+n2,孩子的个数=n-1=2n2+n1

  • 含有 n 个结点的二叉链表中,有 n+1 个空链域。

利用 n0=n2+1,空链域数=2n0+n1

  • 满二叉树:深度为 k 且有 2k-1 个结点的二叉树。
完全二叉树
  • 每个结点都和同深度的满二叉树中的编号从 1 至 n 的结点一一对应。其叶结点只可能出现在层次最大或者第二大的层上。结点数 2k-1-1<n<=2k
  • 对于完全二叉树的第 i 个结点,若 2i>n,则该结点没有左孩子结点;若 2i+1>n,则该结点没有右孩子结点。若结点有双亲结点,则双亲结点的编号必然是 i/2 向下取整。
存储结构
  • 采用链式存储结构比较方便。
  • 三叉链表比二叉链表多一个指向双亲结点的指针。
  • 静态链表也可以用来描述二叉树,此时的左孩子右孩子指针只要是孩子结点对应的标号(当然也可以是指针,但没必要)就可以了,整体看起来是一个结构数组。
二叉树遍历:

D----访问根节点,输出根节点
L----递归遍历左子树
R----递归遍历右子树

  1. 先序遍历 DLR
  2. 中序遍历 LDR
  3. 后序遍历 LRD

队列

参考文章

  • 看完这篇你还不知道这些队列,我这些图白作了
  • Java 中的 queue 和 deque 对比详解

总结

  • 队列遵循 FIFO 原则,但是不一定以 FIFO 的方式排序各个元素。

非循环队列

  • 数据迁移只需要在 tail=MaxSize&&head!=0 时进行,以节省使用代价。
    在这里插入图片描述

  • 判断队列满了的条件,tail = MaxSize,head = 0。

  • 链式队列与顺序队列比起来不需要进行数据的迁移,实现相对简单很多,但是链式队列增加了存储成本。

循环队列

  • 对于一个存储空间为 n 的循环队列,只能存放 n-1 位数据,令 tail 与 head 重合时为队空条件,(tail+1)%MaxSize==head 时为队满条件。
  • 出入队列都应该取模。比如入队 tail=(tail+1)%MaxSize,出队 head=(head+1)%MaxSize。
  • 队列长度 length=(tail-head+MaxSize)%MaxSize。一般队列长度仅需要 tail-head,而循环队列中,head 可能会比 tail 大,所以需要加上 MaxSize 并取模。
  • 由长度公式以及队满条件知,显然,循环队列队满时 length 为 MaxSize-1。

双端队列(Deque)

  • 队头、队尾都可以进行入队、出队操作。总之它即有栈的功能,也有队列的功能。
  • 在将双端队列用作队列时,将得到 FIFO 行为;在将双端队列用作堆栈时,将得到 LIFO 行为;

优先队列(不遵循 FIFO)

  • 从队头出队,队尾入队。不过每次入队时,都会按照入队数据项的关键值进行排序。保证优先级最高的最先出队。
  • 一般用堆实现。

本账号所有文章均为原创,欢迎转载,请注明文章出处:https://shandianchengzi.blog.csdn.net/article/details/149937984。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/94410.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/94410.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CRT调试堆检测:从原理到实战的资源泄漏排查指南

在C/C开发中&#xff0c;内存泄漏和资源管理不当是导致程序崩溃、性能下降的常见原因。微软提供的C运行时库&#xff08;CRT&#xff09;内置了强大的调试工具&#xff0c;能够帮助开发者在开发阶段及时发现并修复资源泄漏问题。本文将深入解析CRT调试堆的工作原理&#xff0c;…

filezilla出现connected refused的时候排查问题

问题描述: 系统是ubuntu20.04&#xff0c;使用filezilla&#xff0c;两个主机之间能够ping通&#xff0c;但是filezilla使用sftp连接的时候显示的是 FATAL ERROR: Connection refused Could connect to the server应该如何排查问题呢 这是一个非常典型的SFTP连接问题。“Connec…

FPGA 基本设计思想--乒乓操作、串并转换、流水线

乒乓操作&#xff08;Ping-Pong&#xff09;的理解&#xff1a;为什么是另一种pipeline&#xff1f;-CSDN博客 FPGA菜鸟学习笔记——2、四大设计思想 - 知乎 乒乓操作&#xff08;Ping-Pong&#xff09;-CSDN博客 乒乓操作原理与FPGA设计-CSDN博客 乒乓操作 — [野火]FPGA …

2023 年 6 月 GESP Python 二级试卷真题+答案+解析

2023 年 6 月 GESP Python 二级试卷解析 一、单选题&#xff08;每题 2 分 &#xff0c;共 30 分&#xff09; 1 、 高级语言编写的程序需要经过以下&#xff08; &#xff09;操作&#xff0c;可以生成在计算机上运行的可执行代码。 A. 编辑 B. 保存 C. 调试…

数据对齐:如何处理时间序列与空间对齐问题?

在多模态学习中&#xff0c;不同模态&#xff08;文本、语音、图像、视频、传感器数据等&#xff09;具有不同的采样率、时间步长、空间分辨率。例如&#xff0c;视频是连续帧&#xff0c;音频是高采样频率的波形&#xff0c;文本是离散符号序列。为了实现有效融合&#xff0c;…

两个任务同一个调用时间 CRON:0 0 3 * * ?,具体如何调度的,及任务如何执行的

xxLjob两个任务 pullGuanjiaSalesJob&#xff0c;不同的执行参数&#xff0c;配置了同一个 XxlJob("pullGuanjiaSalesJob")两个任务同一个调用时间 CRON&#xff1a;0 0 3 * * ?&#xff0c;具体如何调度的&#xff0c;及任务如何执行的在 XXL-JOB 中&#xff0c;当…

【基于WAF的Web安全测试:绕过Cloudflare/Aliyun防护策略】

当Cloudflare或阿里云WAF矗立在Web应用前端&#xff0c;它们如同智能护盾&#xff0c;过滤恶意流量。然而&#xff0c;真正的Web安全测试不止于验证防护存在&#xff0c;更需挑战其边界——理解并模拟攻击者如何绕过这些先进防护&#xff0c;才能暴露深藏的风险。这不是鼓励攻击…

使用YOLOv8-gpu训练自己的数据集并预测

本篇将教学使用示例代码训练自己的数据集&#xff08;train&#xff09;以及预测&#xff08;predict&#xff09;。 目录 一、代码获取 二、训练 1、添加自己的训练集 2、创建训练集设置文件 3、 修改训练代码中数据集设置文件 4、开始训练 三、预测 1、 修改图片路径…

Transformer的并行计算与长序列处理瓶颈

Transformer相比RNN&#xff08;循环神经网络&#xff09;的核心优势之一是天然支持并行计算&#xff0c;这源于其自注意力机制和网络结构的设计.并行计算能力和长序列处理瓶颈是其架构特性的两个关键表现&#xff1a; 并行计算&#xff1a;指 Transformer 在训练 / 推理时通过…

LightRAG:大模型时代的低成本检索利器

LightRAG&#xff1a;大模型时代的低成本检索利器 大模型浪潮下&#xff0c;RAG 技术的困境与曙光 在科技飞速发展的当下&#xff0c;大语言模型&#xff08;LLMs&#xff09;已成为人工智能领域的璀璨明星。从最初惊艳世人的 GPT-3&#xff0c;到如今功能愈发强大的 GPT-4&…

spring boot开发中的资源处理等问题

文章目录一、RESTful 风格二、Spring Boot 静态资源处理三、Spring Boot 首页&#xff08;欢迎页&#xff09;四、PathVariable 注解五、拦截器&#xff08;Interceptor&#xff09;六、过滤器&#xff08;Filter&#xff09;七、触发器&#xff08;Trigger&#xff09;八、Han…

[2025CVPR-图象生成方向]ODA-GAN:由弱监督学习辅助的正交解耦比对GAN 虚拟免疫组织化学染色

​研究背景与挑战​ ​临床需求​ 组织学染色(如H&E和IHC)是病理诊断的核心技术,但IHC染色存在耗时、组织消耗大、图像未对齐等问题。 虚拟染色技术可通过生成模型将H&E图像转换为IHC图像,但现有方法面临两大挑战: ​染色不真实性​:生成图像与真实IHC的分布存在…

【Leetcode】2106. 摘水果

文章目录题目思路代码CJavaPython复杂度分析时间复杂度空间复杂度结果总结题目 题目链接&#x1f517; 在一个无限的 x 坐标轴上&#xff0c;有许多水果分布在其中某些位置。给你一个二维整数数组 fruits &#xff0c;其中 fruits[i] [positioni, amounti] 表示共有 amounti…

(CVPR 2024)SLAM卷不动了,机器人还有哪些方向能做?

关注gongzhonghao【CVPR顶会精选】众所周知&#xff0c;机器人因复杂环境适应性差、硬件部署成本高&#xff0c;对高效泛化一直需求迫切。再加上多传感器协同难题、真实场景数据获取不易&#xff0c;当下对迁移学习 机器人智能融合的研究也就更热烈了。不过显然&#xff0c;这…

Go语言 延 迟 语 句

延迟语句&#xff08;defer&#xff09;是Go 语言里一个非常有用的关键字&#xff0c;它能把资源的释放语句与申请语句放到距离相近的位置&#xff0c;从而减少了资源泄漏的情况发生。延迟语句是什么defer 是Go 语言提供的一种用于注册延迟调用的机制&#xff1a;让函数或语句可…

【go 】数组的多种初始化方式与操作

在 Go 语言中&#xff0c;数组是一种固定长度的数据结构&#xff0c;用于存储相同类型的元素。以下是 Go 中数组的多种初始化方式&#xff0c;结合搜索结果整理如下&#xff1a; &#xff08;一&#xff09;使用 var 关键字声明并初始化数组 使用 var 关键字声明数组时&#xf…

基于Java+MySQL 实现(Web)网上商城

悦桔拉拉商城1. 课设目的可以巩固自己之前所学的知识&#xff0c;以及学习更多的新知识。可以掌握业务流程&#xff0c;学习工作的流程。2. 开发环境硬件环境&#xff1a;Window11 电脑、Centos7.6 服务器软件环境&#xff1a;IntelliJ IDEA 2021.1.3 开发工具JDK 16 运行环境M…

高并发抢单系统核心实现详解:Redisson分布式锁实战

一、方法整体流程解析 #mermaid-svg-MROZ2xF7WaNPaztA {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-MROZ2xF7WaNPaztA .error-icon{fill:#552222;}#mermaid-svg-MROZ2xF7WaNPaztA .error-text{fill:#552222;strok…

Android12 User版本开启adb root, adb remount, su, 关闭selinux

开启adb root 直接看adb源码&#xff1a; __android_log_is_debuggable就是判断ro.debuggable属性值&#xff0c;感兴趣可以在 源码下grep下实现看看。auth_required :在adb源码下定义的全局变量&#xff0c;默认等于true,。看名字就是是否需要用户授权的flag, 这里不再继续跟…

金融专业高分简历撰写指南

一、金融求职简历原则&#xff1a;深度与亮点并存在金融行业求职时&#xff0c;一份出色的简历需突出经历深度与亮点。01 教育背景需如实填写毕业院校、专业、GPA及所学课程。金融行业不少公司对求职者学校和学历有严格标准&#xff0c;如“985”“211”院校或硕士以上学历等。…