- 博客(11)
- 资源 (13)
- 收藏
- 关注
原创 树形结构
一、树的概念 树:由N(N>0)个结点构成的集合,对于N>1,有: 有一个特殊的结点,称为根结点,根结点没有前驱结点 除根结点外,其余结点被分成M(M>0)个互不相交的集合T1、T2…、Tm,其中每一个集合Ti(1<=i<=m)又是一颗结构与树类似的子树.每棵子树的根结点有且只有一个前驱,可以有0个或多个后继,因此,树是递归定义的. ...
2021-04-30 11:02:21 2503
原创 继承与多态
继承是面向对象的重要手段.通过继承定义一个类,继承是类型之间的关系建模,共享公有的东西,实现各自本质不同的东西。 一、继承关系(public继承、protected继承、private继承) private/protected限定符都是限定直接访问,它们之间有什么区别? 基类的私有成员在派生类中是不能被访问的,如果一些基类成员不想被基类对象直接访问,但需要在派生类中访问,就定义为保护成员。可以看出保护成员限定符是因继承才出现的. 成员访问限定符&继承关系 实现一个简单的继承关系 class Per
2021-04-23 15:07:32 283
原创 深拷贝与浅拷贝
简单的赋值浅拷贝 什么是浅拷贝? 由默认的拷贝构造函数所实现的数据成员逐一赋值,但是若类中有指针类型的数据,这种按数据成员逐一赋值的方法将会产生错误。
2021-04-19 21:54:24 121
原创 LeetCode 394. 字符串解码
给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。 此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。 示例 1: 输入:s = “3[a]2[bc]” 输出:“aaabcbc” 示例 2: 输入:s = “
2021-04-17 17:07:18 57
原创 LeetCode 739.每日温度
请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。 例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。 暴力法 从第0个元素开始向右遍历,如果遇到一个比当前元素大的温度值,此时将记录的经过的天数保存到数组,如果遍历完数组还没有找到,则赋值为0. vector<int&
2021-04-13 15:33:14 62
原创 栈与队列
一、栈的概念 一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。不含任何元素的栈称为空栈,栈又称为后进先出的线性表。 栈特性: 后进先出的线性表 栈功能: 将数据从一种序列改变到另一种序列 顺序栈 顺序栈和顺序表数据成员相同,不同之处:顺序栈的入栈和出栈操作只允许对当前栈顶进行操作。所有的操作时间复杂度为O(1). 链式栈: 链式栈的实现,下面的更方便. 二、栈的实现 (1)栈的定义 typedef struct Stack{
2021-04-08 22:05:41 72
原创 LeetCode 20.有效的括号
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 思路一 用栈先入后出的特点,即若遇到左括号入栈,遇到右括号将对应的左括号出栈,那么最后这个栈应该为空。 伪代码: 1) 创建一个栈 2) for i to strlen(str)-1 3) 如果str[i]是三种左括号的一种 4) str[i]入栈 5) 否则 如果str[i]是三种右括号的一种
2021-04-04 10:28:31 56
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人