[沉迷理论]进制链表树

news2024/11/24 4:54:13

往期文章推荐:

题解之最大子矩阵-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.coloradmin.cn/o/1807273.html

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

相关文章

论文阅读——MIRNet

项目地址: GitHub - swz30/MIRNet: [ECCV 2020] Learning Enriched Features for Real Image Restoration and Enhancement. SOTA results for image denoising, super-resolution, and image enhancement.GitHub - soumik12345/MIRNet: Tensorflow implementation…

【云岚到家】-day02-1-区域服务后续开发及完善

【云岚到家】-day02-1-区域服务后续开发及完善 1 区域服务后续开发1.1 添加区域服务1.1.1 接口定义1.1.1.1 接口设计1.1.1.2 接口定义-json 1.1.2 接口开发1.1.2.1 mapper1.1.2.2 service1.1.2.3 controller 1.1.3 测试 1.2 修改价格1.2.1 接口定义1.2.1.1 接口设计1.2.1.2 接口…

【RAG入门教程01】Langchian框架 v0.2介绍

LangChain 是一个开源框架,旨在简化使用大型语言模型 (LLM) 创建应用程序的过程。可以将其想象成一套使用高级语言工具进行搭建的乐高积木。 它对于想要构建复杂的基于语言的应用程序而又不必管理直接与语言模型交互的复杂性的开发人员特别有用。它简化了将这些模型…

动态规划(多重背包+完全背包)

P2851 [USACO06DEC] 最少的硬币 G 题解:从题目上看到那个有n种不同的货币,对于买家来说每个货币有C[ i ]个,是有限个数的,但是对于卖家来说 每个货币都是无限的,题目中要我们求的是买到这个物品的最小交易的货币数&…

电子设计入门教程硬件篇之集成电路IC(二)

前言:本文为手把手教学的电子设计入门教程硬件类的博客,该博客侧重针对电子设计中的硬件电路进行介绍。本篇博客将根据电子设计实战中的情况去详细讲解集成电路IC,这些集成电路IC包括:逻辑门芯片、运算放大器与电子零件。电子设计…

燃料电池汽车践行者

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

计算机操作系统基础知识:操作系统体系结构图,操作系统的内核,大内核与微内核的区别和优缺点,时钟管理,原语

1.操作系统体系结构图: 2.操作系统的内核: 时钟管理:利用时钟中断实现计时功能。 原语:原语是一种特殊的程序,具有原子性。也就是说,这段程序运行必须一气呵成,不能被中断。 ubuntu、centos的…

VUE3 学习笔记(13):VUE3 下的Element-Plus基本使用

UI是页面的门面,一个好的UI自然令人赏心悦目;国人团队开发的ElementUI在众多UI中较为常见,因此通过介绍它的使用让大家更好的了解第三方UI的使用。 安装 Npm install element-plus --save 或 Cnpm install element-plus --save 配置 全局配置…

Vitis HLS 学习笔记--循环边界包含变量

目录 1. 简介 2. 分析与详解 2.1 未优化 2.2 LOOP_TRIPCOUNT 优化指令 2.3 重写变量循环边界 3. 总结 1. 简介 在硬件设计中,循环的迭代次数通常需要是固定的,因为这有助于资源的预分配和时序分析。 循环边界包含变量意味着循环的迭代次数不是固…

MySQL之多表查询—表子查询

一、引言 上一篇博客学习了行子查询。(看弹幕:同一张表用or,不同张表用union) 下面接着学习子查询当中的最后一种——表子查询。 表子查询 1、概念 子查询返回的结果是多行多列,这种子查询称为表子查询。 2、常用的操作符 IN 3、…

2024海南省大数据教师培训-Hadoop集群部署

前言 本文将详细介绍Hadoop分布式计算框架的来源,架构和应用场景,并附上最详细的集群搭建教程,能更好的帮助各位老师和同学们迅速了解和部署Hadoop框架来进行生产力和学习方面的应用。 一、Hadoop介绍 Hadoop是一个开源的分布式计算框架&…

使用Nextjs学习(学习+项目完整版本)

创建项目 运行如下命令 npx create-next-app next-create创建项目中出现的各种提示直接走默认的就行,一直回车就行了 创建完成后进入到项目运行localhost:3000访问页面,如果和我下面页面一样就是创建项目成功了 整理项目 将app/globals.css里面的样式都删除,只留下最上面三…

盲盒抽卡机小程序的特点,互联网下市场发展前景

近几年,盲盒抽卡成为了年轻人的新宠,也受到了未成年人的喜爱,卡牌的内容更是丰富多样,涵盖了动漫、漫画、影视等,因此吸引了各类消费者和越来越多的创业者。 目前,随着市场的发展,抽卡机小程序…

2024HW面试 中高级面试面经背诵笔记(持续更新)

常见数据库的端口,Vnc的端口等 参考答案地址:常见数据库默认端口号_数据库端口-CSDN博客 MySQL 3306 Oracle 1521 DB2 5000 PostgreSQL 5432 MongoDB 27017 Redis 6379 SQL Server 1433 vnc的端口是:5900 推荐一个很好的护网笔记&#xff…

代码随想录刷题笔记-哈希表篇

文章目录 242 有效的字母异位词(easy)力扣地址题目描述题目实例解题思路代码实现 383 赎金信(easy)力扣地址题目描述题目实例解题思路代码实现 49 字母异位词分组(mid)力扣地址题目描述题目实例解题思路代码实现 438 找到字符串中所有字母异位词(mid)力扣地址题目描述题目实例解…

802.11漫游流程简单解析与笔记_Part1

最近在进行和802.11漫游有关的工作,需要对wpa_supplicant认证流程和漫游过程有更多的了解,所以通过阅读论文等方式,记录整理漫游相关知识。Part1将记录802.11漫游的基本流程、802.11R的基本流程、与认证和漫游都有关的三层秘钥基础。Part1将包…

Leetcode3040. 相同分数的最大操作数目 II

Every day a Leetcode 题目来源:3040. 相同分数的最大操作数目 II 解法1:记忆化搜索 第一步可以做什么?做完后,剩下要解决的问题是什么? 删除前两个数,剩下 nums[2] 到 nums[n−1],这是一个…

AIGC之MetaHuman:HeyGen(基于AI驱动的视频生成平台+数字人)的简介、安装和使用方法、案例应用之详细攻略

AIGC之MetaHuman:HeyGen(基于AI驱动的视频生成平台数字人)的简介、安装和使用方法、案例应用之详细攻略 目录 HeyGen的简介 1、HeyGen是一款AI视频生成平台,它提供以下关键功能: HeyGen的安装和使用方法 1、使用方法 01创建或选择一个头…

2003远程桌面端口修改,远程桌面端口修改的方法有哪些

方法一:通过修改注册表 1、打开注册表编辑器: 打开“开始”菜单,点击“运行”,输入“regedit”,然后按下“Enter”键。 2、导航到远程桌面服务的注册表项: 依次展开以下路径: HKEY_LOCAL_M…

【Qt】Qt常见的数据类型

思维导图 学习目标 一、基础类型 因为Qt是一个C的框架,因此C的语法和数据类型在Qt中都是被支持的,但是Qt中也是定义了一些属于自己的数据类型,不过,好多数据类型都是对C的数据类型进行封装,下面来简要介绍一下这些基…