数据结构&算法
文章平均质量分 77
彼得斯坦
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
输入一棵二叉树,求树的深度
题目描述: 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 输入: 第一行输入有n,n表示结点数,结点号从1到n。根结点为1。 n 接下来有n行,每行有两个个整型a和b,表示第i个节点的左右孩子孩子。a为左孩子,b为右孩子。当a为-1时,没有左孩子。当b为-1时,没有右孩子。 输出: 输出一转载 2014-06-09 11:14:49 · 971 阅读 · 0 评论 -
KMP算法
#include using namespace std; void kmp_getnext(char *partten, int *next) { int m = strlen(partten); int i = 0, j = -1; next[i] = j; while ( i < m + 1 ) { while ( j >= 0 && partten[i] != p转载 2014-06-09 13:22:01 · 488 阅读 · 0 评论 -
二维数组中的查找
题目描述: 在一个m*n二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。(m,n 分析:从左到右,从上到下到时递增,对于某个数arr[i][j],要查找的t 要么arr[i][j]==t, 要么arr[][]t在arr[i][j]的下面,如果不在数组中 则i>=m||j转载 2014-06-09 13:33:17 · 539 阅读 · 0 评论 -
寻找丑数
题目:把只包含质因子2、3和5的数称作丑数(Ugly Number),例如:2,3,4,5,6,8,9,10,12,15,等,习惯上我们把1当做是第一个丑数。 写一个高效算法,返回第n个丑数。 最普通(也最耗时)的做法是从1开始遍历,然后判断这个数的因式分解中只包含2,3,5,满足则找到了一个,一直找下去,直到第n个被 找出!测试了一下,找第1500个丑数耗时40秒! 分析:假转载 2014-06-09 12:23:47 · 421 阅读 · 0 评论 -
排序算法
快速排序: #include #include #define LEN 20000000 int a[LEN]; //int a[LEN] = {7, 4, 6, 4, 2, 4, 1, 8}; void initialize(void) { int i; for (i = 0; i < LEN; i++) a[i] = rand(); } void print(void转载 2014-06-09 13:20:17 · 509 阅读 · 0 评论 -
重建二叉树
对于一颗二叉树,可以根据先序遍历(后序遍历)和中序遍历重新还原出二叉树。 根据先序遍历和中序遍历还原二叉树的主要思想: 1、先序遍历序列的第一个元素必定是根节点,可以由此获取二叉树的根节点。 2、根据根节点,在中序遍历序列中查找该节点,由中序遍历的性质可知,中序遍历中该根节点左边的序列必定在根节点的左子树中,而根节点右边的序列必定在右子树中。由此可以知道先序遍历中左子树以及右子树的起止位置。转载 2014-06-09 13:16:48 · 468 阅读 · 0 评论 -
替换空格
题目描述: 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 输入: 每个输入文件仅包含一组测试样例。对于每组测试案例,输入一行代表要处理的字符串。 输出: 对应每个测试案例,出经过处理后的字符串。 样例输入: We A转载 2014-06-09 13:28:22 · 500 阅读 · 0 评论
分享