STL 简单记录、讲解一些初级阶段常用的用法。 STL是C++的一个标准模板库,其中包含了许多在计算机领域常用的基本数据结构以及基本算法。STL主要依赖于模板,使得STL具有广泛的通用性。这篇文章旨在介绍一些常用的STL工具及其用法。 Algorithm 该头文件涉及许多常用的功能,例如比较、交换、 ...
分类:
其他好文 时间:
2020-09-09 19:10:05
阅读次数:
33
1,个人理解前缀、中缀、后缀表达式应该对应着树的前序遍历、中序遍历和后序遍历。 2,中缀表达式更方便人类理解,后缀表达式因为其堆栈结构更方便计算机理解,这就像计算机组成原理中的补码和源码一样,补码更方便计算机计算,源码更方便人类看懂,也可以用二进制和十进制对比,为什么计算机整个框架建立在二进制的基础 ...
分类:
其他好文 时间:
2020-07-18 22:04:50
阅读次数:
83
文章目录 顺序栈的常规操作 定义顺序栈结构体 初始化顺序栈 顺序栈判满 顺序栈判空 计算顺序栈的长度 顺序栈入栈(Push) 顺序栈出栈(Pop) 顺序栈各操作测试 源代码 顺序栈的常规操作 /********************* 顺序栈的常规操作 ********************** ...
分类:
编程语言 时间:
2020-06-25 23:30:31
阅读次数:
124
越是结构化的有规律的数据操作起来越简单,只是我们没有找到规律和工具。 首先贴代码 首先定义了一个树结构,需求是通过任意节点遍历出其所有的子节点。 根据需求的不同,就会有深度遍历和广度遍历两种,getAllChildrenDFSByReduce(),getAllChildrenDFSByStack() ...
分类:
编程语言 时间:
2020-06-24 17:45:31
阅读次数:
92
拨云见日的一周。 Algorithm: 104:Maximum Depth of Binary Tree(Easy) 树的很多问题首先考虑遍历,几种前中后序遍历只是打印时机不同,实际都是一样的 DFS,此外 DFS 也可以不用递归,手动使用栈结构模拟,最后还可以使用 BFS,借助 queue 优先处 ...
分类:
其他好文 时间:
2020-06-21 00:05:54
阅读次数:
51
1、结构体 1 typedef struct my_stack { 2 int len;//既可以表示栈顶编号也可以表示元素个数 3 typename a[10001];//用数组表示栈内元素 4 }Stack; 2、初始化 1 Stack* create_emptystack() { 2 Stac ...
分类:
编程语言 时间:
2020-06-16 18:18:05
阅读次数:
67
栈的基本概念 栈(Stack)是一种线性数据结构但是在存取数据的方式上还是不太一样,栈是一种“先进后出”的一种数据结构。 栈的插入和删除操作只允许在表的一端进行,这个可以操作的端就叫做栈顶,而另一端被称为栈底。 进栈和出栈 根据栈结构的特点,通常只会对栈执行可以执行以下两种操作: 1. 向栈中添加元 ...
分类:
其他好文 时间:
2020-06-15 18:06:09
阅读次数:
63
队列 队列,和栈一样,也是一种对数据的"存"和"取"有严格要求的线性存储结构。 与栈结构不同的是,队列的两端都"开口",要求数据只能从一端进,从另一端出,如图 1 所示: 图 1 队列存储结构 队列存储结构的实现有以下两种方式: 顺序队列:在顺序表的基础上实现的队列结构; 链队列:在链表的基础上实现 ...
分类:
其他好文 时间:
2020-05-28 21:59:49
阅读次数:
77
本文所使用的golang为1.14,gdb为8.1。 一直以来对于函数调用都仅限于函数调用栈这个概念上,但对于其中的详细结构却了解不多。所以用gdb调试一个简单的例子,一探究竟。 函数调用栈的结构(以下简称栈) 栈包含以下作用: 存储函数返回地址。 保存调用者的rbp。 保存局部变量。 为被调用函数 ...
分类:
数据库 时间:
2020-05-23 09:37:23
阅读次数:
60
一、栈 栈(stack),有些地方称为堆栈,但是不能叫堆,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。 没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入 ...
分类:
编程语言 时间:
2020-05-11 01:13:09
阅读次数:
78