数据结构
jiyanfeng1
喜欢算法和编程的工科男
展开
-
如何在遍历二叉树的同时,打印出每个节点的深度
如何在遍历二叉树的同时,打印出每个节点的深度如下图所示的树,要求打印每个节点的数据值和节点的深度。打印结果如下:2 17 22 36 35 411 45 29 34 4由于树具有天然的递归特性,采用递归算法是解决树问题的常用方法。算法实现如下:#includeusing namespace std;struct Nod原创 2012-08-23 04:49:57 · 1566 阅读 · 0 评论 -
[LeetCode] Find max subsquare whose border values are all 1
Imagine you have a square matrix, where each cell is filled with either black or white. Design an algorithm to find the maximum subsquare such that all four borders are filled with black pixels.转载 2012-10-16 09:54:06 · 2158 阅读 · 0 评论 -
[LeetCode] Anagram
Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be in lower-case.思路:用一个map保存字符串,如果字符串第一次遇到,那么把这个字符串放入map,如果第2、3、4、...次遇到,那么把第1、2、3、4、...次的字符串放入返回的向量中原创 2014-12-22 17:32:13 · 685 阅读 · 0 评论 -
二叉树的串行化 Serialization of Binary Tree
二叉树的串行化 Serialization of Binary Tree转自:http://www.geeksforgeeks.org/serialize-deserialize-binary-tree/Serialization is to store tree in a file so that it can be later restored. The structure o转载 2014-11-28 07:21:09 · 2125 阅读 · 0 评论 -
朋友圈 - 图遍历 - 并查集
转载请注明:http://krystism.is-programmer.com/若有错误,请多多指正,谢谢!题目描述:假如已知有n个人和m对好友关系(存于数字r)。如果两个人是直接或间接的好友(好友的好友的好友...),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共有多少个朋友圈。假如:n = 5 , m = 3 , r = {{1 , 2} , {2 , 3} , {转载 2014-09-13 23:16:40 · 1397 阅读 · 0 评论 -
朋友圈
参看http://blog.csdn.net/jiyanfeng1/article/details/8083789假如已知有n个人和m对好友关系,如果两个人是直接或者间接有好友关系,则认为他们属于同一个朋友圈。写程序判断里面有多少朋友圈。例如:n = 5, m = 3 r = {(1,2), (2, 3), (4, 5)} 1 2 3 是一个朋友圈, 4 5 是一个朋友圈。转载 2012-10-18 08:20:22 · 4430 阅读 · 0 评论 -
并查集/朋友圈
高级数据结构设计--并查集及实现学习笔记(有趣篇)并查集的程序设计:为了解释并查集的原理,我将举一个更有趣的例子。 话说江湖上散落着各式各样的大侠,有上千个之多。他们没有什么正当职业,整天背着剑在外面走来走去,碰到和自己不是一路人的,就免不了要打一架。但大侠们有一个优点就是讲义气,绝对不打自己的朋友。而且他们信奉“朋友的朋友就是我的朋友”转载 2012-10-18 08:04:00 · 3491 阅读 · 0 评论 -
中缀表达式转换成后缀表达式/计算后缀表达式
一、后缀表达式介绍后缀表达式的特点就是计算机运算非常方便,需要用到栈;计算机处理过程只需要顺序读入,如果遇到数字,则放入栈中,如果是运算符,则将两个栈中数字取出进行运算;比如1+2的后缀表达式为1 2 +;而栈可以把一般的中缀表达式变成后缀表达式,并且计算后缀表达式得出结果,因此此应用在计算器中非常常用。二、中缀表达式转换成后缀表达式此方法需要遵循几个规则:(1)如果读入操作数,则原创 2012-10-16 07:54:19 · 696 阅读 · 0 评论 -
在二叉树中找到指定的元素,如果有重复出现的元素,要求元素为深度最深的任何一个。
在二叉树中找到指定的元素,如果有重复出现的元素,要求元素为深度最深的任何一个节点定义如下:struct Node{ int data; Node* left; Node* right; Node(int data, Node* left, Node* right) { this->data = data; this->left = left; this->rig原创 2012-08-23 05:31:51 · 5134 阅读 · 0 评论 -
平衡括号问题
相关问题1:http://blog.csdn.net/jiyanfeng1/article/details/8036007(高矮人站队问题)相关问题2:https://blog.csdn.net/jiyanfeng1/article/details/8619975(最长合法括号)括号平衡问题,例如 ((()()))是平衡的,但是)()是不平衡的。问题,一共有n个左括号和n个右括号,请...翻译 2012-10-14 07:28:54 · 4164 阅读 · 0 评论