数据结构与算法
文章平均质量分 50
baibaibai66
这个作者很懒,什么都没留下…
展开
-
二分查找
将通常见到的两种二分查找的方式纪录在这里。关于第二种方式,会涉及到类似STL库中的lower_bound, upper_bound原创 2016-09-16 10:43:16 · 541 阅读 · 0 评论 -
112. Path Sum
TGiven a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.S/** * Definition for a binary tree node. * struct原创 2017-01-06 15:43:45 · 270 阅读 · 0 评论 -
111. Minimum Depth of Binary Tree
TGiven a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.S/** * Definition for a binary tree node.原创 2017-01-06 15:17:04 · 313 阅读 · 0 评论 -
104. Maximum Depth of Binary Tree
TGiven a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.S/** * Definition for a binary tree node.原创 2017-01-05 14:29:35 · 317 阅读 · 0 评论 -
110. Balanced Binary Tree
TGiven a binary tree, determine if it is height-balanced.For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by原创 2017-01-06 14:33:41 · 252 阅读 · 0 评论 -
101. Symmetric Tree
QGiven a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For example, this binary tree [1,2,2,3,4,4,3] is symmetric:But the following [1,2,2,null,3,null,3] is not:原创 2017-01-04 14:47:48 · 253 阅读 · 0 评论 -
声明的意义
当定义了一个变量时,它是什么意思呢,这里是一个简单的一次性解释声明的小程序,之后再改一下,可以一次运行,重复输入就OK了。// 无法重复循环该程序#include <stdio.h>#include <ctype.h> // isalnum()#include <string.h> // strcpy()#include <stdlib.h> // atoi()#define MAXTOK原创 2016-11-15 10:22:20 · 586 阅读 · 0 评论 -
指针与动态数组
C语言中如何实现动态数组:使用malloc()库函数(内存分配)来得到一个指向一大块内存的指针;像引用数组一样引用这块内存如果需要使数组有动态增长的能力,那就修改内存的总容量,直接在运行时在堆上分配数组的内存。这就用到库函数realloc(),它能够对一个现在的内存块大小进行重新分配(通常是实质扩大),同时不会丢失原先内存块的内容。#include <arpa/inet.h>#include原创 2016-11-15 10:16:19 · 1695 阅读 · 0 评论 -
strlen函数
寻找一种更好的算法比改良一种差劲的算法更有效率。#include <stddef.h> // size_t#define MAXLEN 100#include <stdio.h>size_t strlen (char const *string) { int length; for (length = 0; *string++ != '\0'; ) { // *string++,原创 2016-11-15 10:08:44 · 390 阅读 · 0 评论 -
二叉查找树BST(2)
经典算法书关于算法的一些推荐书籍,可以看下这里BST API#include <iostream>using std::cout;using std::cin;using std::endl;using ElemType = int;class BST {private: struct Node { ElemType data; Node *left;原创 2016-09-29 15:13:44 · 474 阅读 · 0 评论 -
无向图1(UNDIRECTED GRAPHS)
图和图像的无关性A drawing gives us intuition about the structure of the graph; but this intuition can be misleading, because the graph is defined independently of the drawing.For example, the two drawings at l原创 2016-10-14 16:16:49 · 1446 阅读 · 0 评论 -
union-find(并查集)
推荐一本普林斯顿大学实战型数据结构与算法书全书用java实现,之前没用过java不用担心的。真是感觉曾经的自己那么naive(当然现在依旧,只不过naive level降低了…),当年为什么就是不明白并查集,觉着非常高端。记着那几个学长讲到这里时,就是彻底不懂。现在,起码给你思想,你能懂了。声明:切的图片、敲的代码都来自本书union-find API(1)UF(int N) // initiali原创 2016-09-28 11:30:43 · 312 阅读 · 0 评论 -
平衡查找树——2-3查找树——红黑树(1)
二叉查找树VS平衡查找树Binary Search Tree possibilitiesBalanced Search Trees如何学 平衡查找树为了保证之前学习的二分查找树BST的平衡性,解决在最坏情况时高度为N的情况,这里有几种平衡查找树:AVL2-3 Search TreesRed-black BSTs ——红黑二叉查找树直接关注最重要的一种搜索树——红黑树,在SGI STL中红黑树原创 2016-09-30 14:41:30 · 3419 阅读 · 0 评论 -
用链表手动实现C++栈操作(5种)
手动实现C++的5种栈操作栈操作push()pop()top()empty()size()顺便温习下 模版template, 结构体struct, 链表linked list, 指针pointer.(这是来搞翻译的么…)贴码:#include <iostream>using namespace std;template <class T>class Stack{private:原创 2016-08-03 11:14:15 · 1896 阅读 · 0 评论 -
二叉查找树BST(1)
今天建二叉查找树(binary search tree)#include <iostream>using std::cout;using std::endl;using ElemType = int;struct Node { ElemType data; Node *left; Node *right;};class BST {public: BST();原创 2016-09-03 17:44:20 · 309 阅读 · 0 评论 -
快速排序(quicksort)
IT公司招人,无论笔试还是面试,快排基本上都会问到。通常情况下,快排实现有两个函数:void quickSort(int arr[], int left, int right);int partition(int arr[], int left, int right)快排采用divide-and-conquer策略:选一个pivot valuePartitionSort both par原创 2016-09-11 14:55:10 · 3750 阅读 · 0 评论 -
113. Path Sum II
TGiven a binary tree and a sum, find all root-to-leaf paths where each path’s sum equals the given sum.S/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *l原创 2017-01-06 16:12:10 · 230 阅读 · 0 评论