[沉迷理论]进制链表树

往期文章推荐:

题解之最大子矩阵-CSDN博客

洛谷P1115最大子段和[神奇的题目]-CSDN博客

(一条神奇的分割线)


前言 

好久没有更新的我总算在百忙之中抽出时间写了篇博客。

最近总算结束了动态规划的学习,真的是头昏脑涨啊。

最近也是开始了进制,链表和树的学习,让我们来详细看看吧!

(一条神奇的分割线)


进制

在日常生活中,我们用的都是十进制。

但是这个世界上不只有十进制,还有二进制、四进制、五进制、八进制、十六进制......

那么不同进制怎么转换呢?其实我们把其他进制转换成十进制就能做题了。

十进制转化成N进制

用十进制数依次除以N,余数依次排列,最后除到不能再除,把余数倒着排列。

具体如下:

字不好看见谅......................................................................................

N进制转化成十进制:

从0开始,依次加当前数位上的数字乘N的第K-1次方(K代表当前数位)。

具体如下:

然后我们就可以解决不少关于进制加减的题目了。

补充一点位运算知识:

一张图讲明白。

与:两个必须都为真才为真

或 :一个为真即为真

非:两个都不为真即为真

异或:两个值不相同才为真

左移:在左边加上一个0

右移:删除左边的一个数

你学废了吗?

OK,去刷题吧!

关于进制就讲到这。

(一条神奇的分割线)


链表

链表是线性表的一种,线性表分为顺序表和链表两种实现方式。

顺序表可以理解为数组。

顺序表的优点是只需存放数据元素自身的信息;存储密度大;空间利用率高;存取速度快。

缺点则是需要实现分配存储空间;容易造成空间浪费(空间冗余);进行插入删除操作效率低。

顺序表就到这里!我们的主角是链表。

链表的概念:

用一组地址任意的储存单元(可以连续也可以不连续)依次储存线性表中的各个元素。

我们可以拿火车来做理解。(火车真的很像链表)

总结一下链表的优点:空间利用率高,插入删除操作便捷。

缺点:修改、查找麻烦。

链表的种类有单向链表、双向链表、循环链表。

单向链表:每个节点由两部分组成,元素自身信息即数据域(data),指向后继元素位置的信息称为指针域(link)。整个链表用list指出,以表明链表的首地址。链表为空时,list为null。

双向链表:除了数据域外有两个指针域,llink(左)指向前驱节点,rlink(右)指向后继节点。双向链表有循环线性和非循环线性。

循环链表:最后一个节点的指针指向链表的第一个链节点,整个链表形成一个循环,从表中任意节点出发均可找到表中其他节点。

在各位准备刷题之前记住一个坑点:有些节点被修改过了,所以后面的分析中要小心。

OK,在题海中漂泊吧!

关于链表就讲到这。

(一条神奇的分割线)


树可能是这三个里面最容易理解的了。

定义:树作为一种非线性的数据结构,是由n(≥0)个节点组成的有限集合。

如果n=0,那么这棵树为空树。

如果n>0,那么这棵树有个特定节点——根节点。说白了根节点就是所有节点的祖先。

根节点只有后继(儿子),没有前驱(父亲)。

接下来讲几个概念:

树的度:节点拥有子树的数量叫做节点的度,度为0的节点叫做叶节点。度不为0的节点叫做分支节点。树的度为这棵树中所有节点的度的最大值,就可以叫做几叉树。比如二叉树,就是每个节点的子树和子节点最多有两个。

树的前驱和后继:这个节点的父亲节点(很通俗)就是这个节点的前驱,每个节点的子节点就是这个节点的后继。节点孩子的孩子称为节点的孙子,节点成为子孙的祖先,同一个双亲的子节点之间互称兄弟。

树中节点的层次:树中根节点为第一层,根节点的孩子为第二层,以此类推。树中节点的最大层次成为树的深度或高度。

森林:n棵互不相交的树组成的集合叫森林。

然后我们讲一下树的性质:

1,除根节点没有父亲之外,其他节点有且仅有一个父亲。

2,n个节点的数,有且仅有n-1条边。

3,树中任意两个节点之间有且仅有一条简单路径。

OK,树就讲完了。

但是!

Wait a moment!

树中最精彩的部分才刚开始讲!

(一条神奇的分割线)


二叉树

二叉树其实是树的一种,但是它实在是太牛皮了,所以我要单独提溜出来讲。

二叉树是一种度数为2的数,就是每个节点的子节点最多有两个。每个节点的子节点分别称为左孩子,右孩子。两颗子树分别称为左子树,右子树。

鄙人目前只学到二叉树的遍历,就先讲到此处。

二叉树有四种遍历方式:

先序遍历:遍历顺序:根节点>左节点>右节点,优先级同上。

中序遍历:遍历顺序:左节点>根节点>右节点,优先级同上。

后序遍历:遍历顺序:左节点>右节点>根节点,优先级同上。

层次遍历:每一层从左到右遍历。

做题技巧:如果遇见给出某几种遍历的结果让你画出这棵树,牢记:后序遍历找根节点,中序遍历找左右节点。

最后,注意优先级问题!

OK,在题目中度过美好的一天吧!

(一条神奇的分割线)


后记

参考文献:

信息学奥赛一本通 初赛真题解析,一本通信息学名师工作室编著,南京大学出版社出版。

感谢阅览!烦请一键三连!Thanks♪(・ω・)ノ

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

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

相关文章

45.django - 开始建立第一个项目

1.django是什么? Django是一个高级的、免费的、开源的Web应用框架,它由Python编程语言编写而成。Django遵循模型-视图-控制器(MVC)的设计模式,但通常将其称为模型-视图-模板(MVT)架构。它的主要…

Silanna UV光荣推出了一款革命性的高功率远紫外线LED

这款令人瞩目的光源,拥有令人震撼的235nm波长,并被巧妙地封装在紧凑的6.8mm结构中,其魅力与实力兼具。 今年六月,在苏格兰圣安德鲁斯大学举行的盛大2024年远紫外科学和技术国际大会(ICFUST)上,S…

C# WPF入门学习主线篇(十七)—— UniformGrid布局容器

C# WPF入门学习主线篇(十七)—— UniformGrid布局容器 欢迎来到C# WPF入门学习系列的第十七篇。在前几篇文章中,我们已经探讨了 Canvas、StackPanel、WrapPanel、DockPanel 和 Grid 布局容器及其使用方法。本篇博客将介绍另一种非常实用且简单…

多目标检测模型加权框集成

优秀项目推荐:https://gitcode.com/ZFTurbo/Weighted-Boxes-Fusion/overview 参考链接: 目标检测加权框融合 WBF原理讲解 https://blog.csdn.net/YXD0514/article/details/132574588 目标检测加权框融合 WBF原理讲解(Weighted Boxes Fusion&…

LVGL移植和图片显示

最近闲来无事,偶尔刷到了移植LVGL的教程,今天肝完了机械原理又移植完LVGL库,真是收获满满的一天,先接一杯水去。 回来了,发个朋友圈高级一下,好困。 lvgl v8.3移植及组件使用_lvgl界面编辑器-CSDN博客htt…

插卡式仪器模块:音频分析模块(插卡式)

• 24 位分辨率 • 192 KHz 采样率 • 支持多种模拟音频信号的输入/输出 应用场景 • 音频信号分析:幅值、频率、信噪比、THD、THDN 等指标 • 模拟音频测试:耳机、麦克风、扬声器测试,串扰测 音频分析仪 输入阻抗10 TΩ10 TΩ输入范围3…

vue如何使用slot

1. vue2 如何使用slot 1.1. 默认插槽(Default Slot)1.2. 具名插槽(Named Slot)1.3. 作用域插槽(Scoped Slot) 2. vue3 如何使用slot 2.1. 默认插槽(Default Slot)2.2. 具名插槽&…

Visual Studio 调试反汇编c++/c

目录 一、代码打断点 二、开启调试 三、调试反汇编 一、代码打断点 如下图所示: 二、开启调试 三、调试反汇编 代码调试成功后,打开窗口下的反汇编就可以查看我们的反汇编代码了。

python批量调整word含有关键字句子样式

代码: from docx import Document from docx.shared import RGBColor obj Document(装机必读调整样式.docx) word 软件 def set_run(run):#设置run的字体大小、是否加粗以及字体颜色run.font.size font_sizerun.bold boldrun.font.color.rgb color for p in obj.…

DP:回文串模型

一、回文子串 . - 力扣(LeetCode) 该题有3种解法 (1)中心扩展算法(在字符串章节有介绍)时间复杂度O(N^2),空间复杂度O(1) (2)马丁车…

Spring AI 第二讲 之 Chat Model API 第六节Google VertexAI API

VertexAI API 可提供高质量的定制机器学习模型,只需花费最少的机器学习专业知识和精力。 Spring AI 通过以下客户端提供与 VertexAI API 的集成: VertexAI Gemini Chat Vertex AI Gemini API 允许开发人员使用 Gemini 模型构建生成式人工智能应用程序。…

Apollo9.0 PNC源码学习之Control模块(一)

0 前言 从planning的角度看control,首先需要了解的就是相关的数据接口,规划出的轨迹(路径速度)发给Control模块去执行 modules/planning/planning_component/planning_component.cc planning模块发布轨迹信息 planning_writer_ …

利用CSS隐藏HTML元素并插入替代内容

在创建一个支持切换阅读模式和答题模式的Anki问答题模板中,我创建了一个支持切换阅读模式和答题模式的问答题模板,该文最终利用JavaScript将Anki输出的向下箭头删除,并插入自定义的提示语。经过进一步测试,发现实现上述功能完全不…

Unity 从0开始编写一个技能编辑器_02_Buff系统的生命周期

工作也有一年了,对技能编辑器也有了一些自己的看法,从刚接触时的惊讶,到大量工作时觉得有一些设计的冗余,在到特殊需求的修改,运行效率低时的优化,技能编辑器在我眼中已经不再是神圣不可攀的存在的&#xf…

【微信小程序】开发环境配置

目录 小程序的标准开发模式: 注册小程序的开发账号 安装开发者工具 下载 设置外观和代理 第一个小程序 -- 创建小程序项目 查看项目效果 第一种:在模拟器上查看项目效果 项目的基本组成结构 小程序代码的构成 app.json文件 project.config…

燃料电池汽车践行者

前言 见《氢燃料电池技术综述》 见《燃料电池工作原理详解》 见《燃料电池发电系统详解》 见《燃料电池电动汽车详解》 见《氢燃料电池汽车行业发展》 现代汽车(中国) 现代汽车集团,自1998年成立氢燃料电池研发小组以来深耕氢燃料电池技术&am…

html+CSS+js部分基础运用19

1. 应用动态props传递数据,输出影片的图片、名称和描述等信息【要求使用props】,效果图如下: 2.在页面中定义一个按钮和一行文本,通过单击按钮实现放大文本的功能。【要求使用$emit()】 代码可以截图或者复制黏贴放置在“实验…

spring-data-mongodb版本兼容问题

spring-data-mongodb与mongodb驱动有兼容性问题,不匹配会报NoSuchMethod异常,mongodb的java驱动包在4.0之后由mongodb-java-driver更名为mongodb-driver-sync。 spring-data-mongodb包依赖中有mongodb-driver-core,但缺诸如MongoCollection等…

【C语言】文件操作(终卷)

前言 我们在上一卷中了解了顺序读写的函数,现在就让我们从随机读写的函数开始吧。 什么是随机读写? 就是想在哪个位置读或写都行,比较自由。文件打开时光标默认在起始位置。想从后面的某个部分读或写,就得让文件指针来到那个位…

VMware Fusion 如何增加linux硬盘空间并成功挂载

文章目录 0. 前言1. 增加硬盘空间2. 硬盘分区2.1 查看硬盘2.2 分区2.3 格式化2.4 挂载 3. 参考 0. 前言 如果发现虚拟机分配的硬盘不足,需要增加硬盘空间。本文教给大家如何增加硬盘空间并成功挂载。 查看当前硬盘使用情况: df -h可以看到&#xff0c…