数据结构
cx1165597739
这个作者很懒,什么都没留下…
展开
-
堆栈的应用——表达式求值
这是在学习数据结构时写的代码,表达式求值。设计一个程序,演示用算符优先法对算术表达式求值的过程。利用算符优先关系,实现对算术四则混合运算表达式的求值。(1)输入的形式:表达式,例如2*(3+4) 包含的运算符只能有'+' 、'-' 、'*' 、'/' 、'('、 ')';(2)输出的形式:运算结果,例如2*(3+4)=14;(3)程序所能达到的功能:对表达式求值并输出#include &l...原创 2018-06-15 16:45:57 · 517 阅读 · 0 评论 -
130. 被围绕的区域
给定一个二维的矩阵,包含'X'和'O'(字母 O)。 找到所有被 'X' 围绕的区域,并将这些区域里所有的'O' 用 'X' 填充。 示例: X X X X X O O X X X O X X O X X 运行你的函数后,矩阵变为: X X X X X X X X X X X X X O X X 解释: 被围绕的区间不会存在于边界上,换句话说,任何边界上的'O'都不会被填充为...原创 2019-09-01 20:19:38 · 174 阅读 · 0 评论 -
并查集详解 ——图文解说,简单易懂(转)
并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?) 来看一个实例,HDU1232畅通工程 首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断...转载 2019-09-01 17:15:16 · 163 阅读 · 0 评论 -
关联式容器
一般来说,STL容器分为: 序列式容器(vector/list/deque/stack/queue/heap),和关联式容器。 其中,关联式容器又分为set(集合)和map(映射表)两大类,以及这两大类的衍生体multiset(多键集合)和multimap(多键映射表),这些容器均以RB-tree(red-black tree, 红黑树)完成。 此外,还有第3类关联式容器,如hashtabl...原创 2019-08-13 21:52:55 · 260 阅读 · 0 评论 -
B树
1.前言: 动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Black Tree ),B-tree/B+-tree/ B*-tree (B~Tree)。前三者是典型的二叉查找树结构,其查找的时间复杂度O(log2N)与树的深度相关,那么降低树的深度自然会提高查找效率。 但是咱们有面对...原创 2019-08-13 21:33:02 · 127 阅读 · 0 评论 -
遍历链表
题目描述 建立一个升序链表并遍历输出。 输入描述: 输入的每个案例中第一行包括1个整数:n(1<=n<=1000),接下来的一行包括n个整数。 输出描述: 可能有多组测试数据,对于每组数据, 将n个整数建立升序链表,之后遍历链表并输出。 示例1 输入 复制 4 3 5 7 9 输出 复制 3 5 7 9 使用堆排序排序后,构造链表,再遍历输出 ...原创 2019-05-13 14:36:49 · 587 阅读 · 0 评论 -
P1305 新二叉树
题目描述 输入一串二叉树,用遍历前序打出。 输入输出格式 输入格式: 第一行为二叉树的节点数n。(n \leq 26n≤26) 后面n行,每一个字母为节点,后两个字母分别为其左右儿子。 空节点用*表示 输出格式: 前序排列的二叉树 输入输出样例 输入样例#1:复制 6 abc bdi cj* d** i** j** 输出样例#1:复制 ab...原创 2019-05-19 16:39:42 · 127 阅读 · 0 评论 -
P1030 求先序排列
题目描述 给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度\le 8≤8)。 输入输出格式 输入格式: 22行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列。 输出格式: 11行,表示一棵二叉树的先序。 输入输出样例 输入样例#1:复制 BADC BDCA 输出样例#1:复制 ABCD ...原创 2019-05-19 16:14:48 · 177 阅读 · 0 评论 -
P1087 FBI树
题目描述 我们可以把由“00”和“11”组成的字符串分为三类:全“00”串称为BB串,全“11”串称为I串,既含“00”又含“11”的串则称为F串。 FBIFBI树是一种二叉树,它的结点类型也包括FF结点,BB结点和I结点三种。由一个长度为2^N2N的“0101”串S可以构造出一棵FBIFBI树TT,递归的构造方法如下: 1)TT的根结点为RR,其类型与串SS的类型相同; 2) 若串SS...原创 2019-05-19 16:01:49 · 176 阅读 · 0 评论 -
P1449 后缀表达式
题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。 如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.+@。’@’为表达式的结束符号。‘.’为操作数的结束符号。 输入输出格式 输入格式: 输入:后缀表达式 输出格式: 输出:表达式的值...原创 2019-05-19 14:50:40 · 174 阅读 · 0 评论 -
P1160 队列安排
题目描述 一个学校里老师要将班上NN个同学排成一列,同学被编号为1\sim N1∼N,他采取如下的方法: 先将11号同学安排进队列,这时队列中只有他一个人; 2-N2−N号同学依次入列,编号为i的同学入列方式为:老师指定编号为i的同学站在编号为1\sim (i -1)1∼(i−1)中某位同学(即之前已经入列的同学)的左边或右边; 从队列中去掉M(M<N)M(M&l...原创 2019-05-19 14:38:42 · 344 阅读 · 0 评论 -
25. k个一组翻转链表
给出一个链表,每k个节点一组进行翻转,并返回翻转后的链表。 k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么将最后剩余节点保持原有顺序。 示例 : 给定这个链表:1->2->3->4->5 当k= 2 时,应当返回:2->1->4->3->5 当k= 3 时,应当返回:3->2->...原创 2019-04-03 15:14:24 · 115 阅读 · 0 评论 -
二叉搜索树
二叉查找树(英语:Binary Search Tree),也称为二叉搜索树、有序二叉树(ordered binary tree)或排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树: 若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值; 若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值; 任意节点的左、右子树也分别为二叉...原创 2018-07-23 00:20:46 · 121 阅读 · 0 评论 -
基于堆的优先队列
普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出 (first in, largest out)的行为特征。通常采用堆数据结构来实现。 先来看一下堆的概念,堆是二叉堆的简称,是一种每个节点的元素都大于两个子节点的完全二叉树,在优先队列中一般用数组表示。 #include&l...原创 2018-07-22 10:09:31 · 278 阅读 · 0 评论 -
红黑树
红黑树(Red Black Tree) 是一种自平衡二叉查找树,典型的用途是实现关联数组。 它是在1972年由Rudolf Bayer发明的,当时被称为平衡二叉B树(symmetric binary B-trees)。后来,在1978年被 Leo J. Guibas 和 Robert Sedgewick 修改为如今的“红黑树”。 红黑树和AVL树类似,都是在进行插入和删除操作时通过特定操作保持...原创 2018-07-23 20:18:39 · 137 阅读 · 0 评论 -
200. 岛屿数量
给定一个由'1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。 示例 1: 输入: 11110 11010 11000 00000 输出:1 示例2: 输入: 11000 11000 00100 00011 输出: 3 并查集解决 class Solution ...原创 2019-09-01 20:38:09 · 112 阅读 · 0 评论