数据结构
cx1165597739
这个作者很懒,什么都没留下…
展开
-
堆栈的应用——表达式求值
这是在学习数据结构时写的代码,表达式求值。设计一个程序,演示用算符优先法对算术表达式求值的过程。利用算符优先关系,实现对算术四则混合运算表达式的求值。(1)输入的形式:表达式,例如2*(3+4) 包含的运算符只能有'+' 、'-' 、'*' 、'/' 、'('、 ')';(2)输出的形式:运算结果,例如2*(3+4)=14;(3)程序所能达到的功能:对表达式求值并输出#include &l...原创 2018-06-15 16:45:57 · 481 阅读 · 0 评论 -
130. 被围绕的区域
给定一个二维的矩阵,包含'X'和'O'(字母 O)。找到所有被 'X' 围绕的区域,并将这些区域里所有的'O' 用 'X' 填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的'O'都不会被填充为...原创 2019-09-01 20:19:38 · 157 阅读 · 0 评论 -
并查集详解 ——图文解说,简单易懂(转)
并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?)来看一个实例,HDU1232畅通工程首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断...转载 2019-09-01 17:15:16 · 143 阅读 · 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 · 228 阅读 · 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 · 106 阅读 · 0 评论 -
遍历链表
题目描述建立一个升序链表并遍历输出。输入描述:输入的每个案例中第一行包括1个整数:n(1<=n<=1000),接下来的一行包括n个整数。输出描述:可能有多组测试数据,对于每组数据,将n个整数建立升序链表,之后遍历链表并输出。示例1输入复制43 5 7 9输出复制3 5 7 9使用堆排序排序后,构造链表,再遍历输出...原创 2019-05-13 14:36:49 · 554 阅读 · 0 评论 -
P1305 新二叉树
题目描述输入一串二叉树,用遍历前序打出。输入输出格式输入格式:第一行为二叉树的节点数n。(n \leq 26n≤26)后面n行,每一个字母为节点,后两个字母分别为其左右儿子。空节点用*表示输出格式:前序排列的二叉树输入输出样例输入样例#1:复制6abcbdicj*d**i**j**输出样例#1:复制ab...原创 2019-05-19 16:39:42 · 107 阅读 · 0 评论 -
P1030 求先序排列
题目描述给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度\le 8≤8)。输入输出格式输入格式:22行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列。输出格式:11行,表示一棵二叉树的先序。输入输出样例输入样例#1:复制BADCBDCA输出样例#1:复制ABCD...原创 2019-05-19 16:14:48 · 148 阅读 · 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 · 144 阅读 · 0 评论 -
P1449 后缀表达式
题目描述所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.+@。’@’为表达式的结束符号。‘.’为操作数的结束符号。输入输出格式输入格式:输入:后缀表达式输出格式:输出:表达式的值...原创 2019-05-19 14:50:40 · 158 阅读 · 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 · 322 阅读 · 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 · 92 阅读 · 0 评论 -
二叉搜索树
二叉查找树(英语:Binary Search Tree),也称为二叉搜索树、有序二叉树(ordered binary tree)或排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树:若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值; 若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值; 任意节点的左、右子树也分别为二叉...原创 2018-07-23 00:20:46 · 94 阅读 · 0 评论 -
基于堆的优先队列
普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出 (first in, largest out)的行为特征。通常采用堆数据结构来实现。先来看一下堆的概念,堆是二叉堆的简称,是一种每个节点的元素都大于两个子节点的完全二叉树,在优先队列中一般用数组表示。#include&l...原创 2018-07-22 10:09:31 · 259 阅读 · 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 · 113 阅读 · 0 评论 -
200. 岛屿数量
给定一个由'1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。示例 1:输入:11110110101100000000输出:1示例2:输入:11000110000010000011输出: 3并查集解决class Solution ...原创 2019-09-01 20:38:09 · 95 阅读 · 0 评论