代码随想录算法训练营第十五天|层序遍历-爱代码爱编程
代码随想录算法训练营第十五天|层序遍历 102. 二叉树的层序遍历 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root = [3,9,2
代码编织梦想
代码随想录算法训练营第十五天|层序遍历 102. 二叉树的层序遍历 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root = [3,9,2
232. 用栈实现队列 题目 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty()
目录 一、受限线性表基本理论(一)、栈(二)、队列 二、LeetCode 232.用栈实现队列思路:C++代码 三、LeetCode 225. 用队列实现栈思路C++代码 四、LeetCode
150. 逆波兰表达式求值 给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意: 有效的算符为 ‘+’、‘-’、‘*’ 和 ‘/’
150. 逆波兰表达式求值 代码 class Solution { public: int evalRPN(vector<string>& tokens) { stack<
150.逆波兰表达式求值 题目:150. 逆波兰表达式求值 - 力扣(LeetCode) 其实就是后缀表达式, 逆波兰表达式主要有以下两个优点: 去掉括号后表达式无歧义,上式即便写成 1 2 + 3 4 + * 也可以依据次序计算出正确结果。 适合用栈操作运算:遇到数字则入栈;遇到运算符则取出栈顶两个数字进行计算,并将结果压入栈中 动图理解:
151. 反转字符串中的单词,55.右旋转字符串,28. 找出字符串中第一个匹配项的下标,459. 重复的子字符串 151. 反转字符串中的单词55.右旋转字符串28. 找出字符串中第一个匹配项的下标459.
二叉树的带权路径长度(WPL)是二叉树中所有叶结点的带权路径长度之和,也就是每个叶结点的深度与权值之积的总和。 给定一棵二叉树 TT,请你计算并输出它的 WPL。 注意,根节点的深度为 00。 样例 输入:二叉树[8, 12, 2, null, null, 6, 4, null, null, null, null]如下图所示: 8 /
实验目的: 1、理解队列数据结构的概念和特点。 2、熟悉队列的应用场景和算法实现。 二、实验内容(实验题目与说明) 实现了一个循环队列,具有功能: 初始化队列。判断队列是否为空。判断队列是否已满。入队。出队。 在 main() 函数中,先初始化队列,然后依次将元素 'a'、'b'、'c' 入队,再出队一个元素,输出该元素,接着将元素 'd'
代码随想录 | Day24 | 二叉树:二叉树的公共祖先(有个自己的想法)&&二叉搜索树的公共祖先 主要学习内容: 1.一般需要向上返回下层结点的内容信息或者判断结果的话都是后序遍历 2.二叉搜索树的性
一、开篇序言 作为一名刚步入大三的计算机科班生,思来想去,还是决定以数据结构作为自己的第一章,原因有很多,由于数据结构是大二学的,现在还有点基础和印象;再者,学计算机就是基础不牢,地动山摇,学好数据结构无论是单纯对计算机的学习或者是升学、找工作都是至关重要的。与君共勉,有错误的地方还请大佬指出🙏 二、数据结构是什么? 下面是摘自由
这段时间,我学到了查找技术和排序技术,这两种操作在许多程序中应用,例如大一写的核酸作业就用到了这两种技术。这两章主要是学习查找和排序的各种算法,拓宽我的思路,并且非常的实用,也非常的有趣。关于查找技术和排序技术的知识,我总结为三方面:课本上学到的知识、上机实现课本上的例子的过程所学到的知识和做课后题学到的知识和技巧。 排序技术: 在排序技术中,我首先学
这段时间,我学到了查找技术和排序技术,这两种操作在许多程序中应用,例如大一写的核酸作业就用到了这两种技术。这两章主要是学习查找和排序的各种算法,拓宽我的思路,并且非常的实用,也非常的有趣。关于查找技术和排序技术的知识,我总结为三方面:课本上学到的知识、上机实现课本上的例子的过程所学到的知识和做课后题学到的知识和技巧。 查找技术: 查找,课本上给出的定义
链表经典算法OJ题 1.1 移除链表元素 题目要求: 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5]
片头 嗨! 小伙伴们,大家好! 今天我们来讲讲这道OJ题----环形链表,准备好了吗? 我们开始咯! 题目似乎有点抽象,我们举几个例子哈 上图中,总共有4个结点,分别为 3, 2, 0, -4, 链表中有一个环,尾结点连接到第二个结点。 上图中,总共有2个结点,分别为 1, 2, 链表中有一个环, 尾结点连接到第一个结点。 上
一,堆的概念与结构 如果有⼀个关键码的集合,把它的所有元素按完全⼆叉树的顺序存储方式存储,在⼀个⼀维数组中,并满足:,i=0,1,2...则称为小堆(或⼤堆)。将根结点最大的堆叫做最大堆或大根堆,根结点最小的堆叫做最小堆或小根堆。 堆具有以下性质: 1.堆中某个结点的值总是不大于或不小于其父结点的值 2.堆总是⼀棵完全二叉树。 这
1、栈与队列理论基础 队列是先进先出,栈是先进后出 C++中stack是容器么? 我们使用的stack是属于哪个版本的STL? 我们使用的STL中stack是如何实现的? stack 提供迭代器来遍历stack空间么?
150. 逆波兰表达式求值 力扣题目链接(opens new window) 根据逆波兰表示法,求表达式的值。 有效的运算符包括 + , - , * , / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 说明: 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的
232.用栈实现队列 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty(
1.逆波兰表达式 题目链接/文章讲解/视频讲解:代码随想录 代码: class Solution { public: int evalRPN(vector<string>& tokens) { stack<long long> st;