自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

happy_豆的博客

开心的学习,做happy的小豆

  • 博客(23)
  • 收藏
  • 关注

原创 重建二叉树

/*题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。*/class Solution {public:    //根据前序遍历和中序遍历重建二叉树    TreeNode* reCon...

2018-07-31 21:52:27 91

原创 判断二叉树后续遍历

/*输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。*///非递归//非递归也是一个基于递归的思想://左子树一定比右子树小,因此去掉根后,数字分为left,right两部分,right部分的//最后一个数字是右子树的根他也比左子树所有值大,因此我们可以每次只看有子树是否符合条件//即可,即使...

2018-07-31 11:19:53 252

原创 栈的压入、弹出序列

/*输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)*/class Solution {public:    bool IsPop...

2018-07-30 17:41:55 108

原创 定义栈的数据结构

//定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。class Solution {public:    void push(int value) {        st.push(value);        if (smin.empty())            smin.push(value);        if (s...

2018-07-30 16:52:20 1134

原创 合并有序链表

/*输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。*///递归方法,消耗内存多//创建一个新的结点(链表)class Solution {public:    ListNode* Merge(ListNode* pHead1, ListNode* pHead2)    {        if (pHead1 == NULL)  re...

2018-07-30 11:42:40 91

原创 输入一个链表,反转链表后,输出新链表的表头。

/*输入一个链表,反转链表后,输出新链表的表头。将数据压栈后重新放入,得到一个反转的链表,原来的表头仍为表头*/class Solution {public:    ListNode* ReverseList(ListNode* pHead) {        std::stack<int> st;        ListNode* p = pHead;      ...

2018-07-30 10:53:10 1806

原创 输入一个链表,输出该链表中倒数第k个结点。

class Solution {public:    ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {        ListNode *p, *q;        p = q = pListHead;        int i = 0;        for (; p != NULL; i++) {    ...

2018-07-30 10:38:56 136

原创 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

class Solution{public: void push(int node) { stack1.push(node); } int pop() { if (stack2.empty()) { int p = stack1.size(); for (int i = 0; i < p; i++) { stack2.push(stack1...

2018-07-30 10:01:45 199

原创 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。

class Solution {public:    vector<int> printListFromTailToHead(struct ListNode* head) {        std::stack<int> nodes;        vector<int> outnodes;        ListNode *pNode = head...

2018-07-30 09:36:14 418

原创 背包问题

// bag_pro.cpp : 定义控制台应用程序的入口点。//// stdafx.cpp : 只包括标准包含文件的源文件// bag.pch 将作为预编译头// stdafx.obj 将包含预编译类型信息// TODO: 在 STDAFX.H 中引用任何所需的附加头文件,//而不是在此文件中引用// bag.cpp : 定义控制台应用程序的入口点。//#includ...

2018-07-30 09:07:10 150

转载 动态规划

1. 概述动态规划( Dynamic Programming, DP)是最优化问题的一种解决方法,本质上状态空间的状态转移。所谓状态转移是指每个阶段的最优状态(对应于子问题的解)可以从之前的某一个或几个阶段的状态中得到,这个性质叫做最优子结构。而不管之前这个状态是如何得到的,这被称之为无后效性。DP问题中最经典的莫过于01背包问题:有N件物品和一个容量为V的背包。第i件物品的费用是c...

2018-07-26 16:08:37 90

原创 C++排序:冒泡排序、插入排序、选择排序、快速排序

#include "stdafx.h"#include <iostream>using namespace std;//冒泡排序  O(log(n)):每轮选出最大值void bubblesort(int array[], int n){    //排序    for (int i = 0; i < n - 1; i++)    {        for (...

2018-07-26 15:40:16 189

原创 冒泡排序

// search_sort.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;//冒泡排序void bubblesort(int array[], int n){ //排序 for (int i = 0; i < n-1; i++) { ...

2018-07-25 20:46:46 92

原创 多种查找代码

https://blog.csdn.net/jc_benben/article/details/78049027#t0

2018-07-25 20:10:43 666

原创 顺序查找、折半查找

#include "stdafx.h"#include <iostream>using namespace std;//顺序查找:依次遍历查找与value相同的值(无论有序、无序):O(n)int SequenceSearch(int array[], int value, int n){    for (int i = 0; i < n; i++)    {...

2018-07-25 20:07:01 220

转载 查找算法

http://www.cnblogs.com/butyoux/archive/2013/01/15/2861291.html下列五种查找算法,除顺序查找外,其他算法的思路基本相同:  先对数据按某种方法进行排序,然后使用相应的规则查找。因此,搞清排序算法才是关键。一、顺序查找  条件:无序或有序队列。  原理:按顺序比较每个元素,直到找到关键字为止。  时间复杂度:O(...

2018-07-25 16:45:40 112

原创 c++图的广度优先遍历、深度优先遍历

#include "stdafx.h"#include <iostream>#include <vector>using namespace std;/*图的遍历深度优先遍历(前序遍里):邻接矩阵(无向图,对称)广度优先遍历(分层遍历)*//*struct Node{int elem;Node *link;};*/class Node{pu...

2018-07-25 15:48:09 6516

原创 C++ 二叉树

/*二叉树:数组表达二叉树,不存在为0    索引从0开始父节点下标*2+1   左节点父节点下标*2+2   右节点1.树的创建,销毁2.节点搜索(指定下标)3.节点添加,删除(指定下标,左右等)4.节点遍历(遍历数组)*/#include "stdafx.h"#include <iostream>using namespace std;/*st...

2018-07-24 16:31:26 164

原创 C++ 环形队列 入队 出队 遍历

#include "stdafx.h"#include <iostream>using namespace std;/*struct Node{int elem;Node *link;};*/class STACK{public:    STACK(int size);    //栈初始空间,容量,栈顶    ~STACK();     //回收内存  ...

2018-07-24 11:32:20 1297

原创 C++ 对象创建

1,使用 new:使用堆存储,创建的内存初始化后,需要在程序的最后释放指针,否则存在安全隐患;2. 不使用:直接创建对象,此时的对象通过构造函数初始化,当不在使用时,利用自身析构函数释放。...

2018-07-24 10:20:44 131

原创 静态栈

#include <iostream>using namespace std;/*struct Node{    int elem;    Node *link;};*/class STACK{    public:        STACK(int size);    //栈初始空间,容量,栈顶        ~STACK();     //回收内存 ...

2018-07-24 09:37:07 340

转载 C++ 链栈

#include <iostream>using namespace std;struct Node {    int elem;    Node *link;};class Stack {public:    Stack();           //构造函数,构造一个空栈    ~Stack();          //析构函数,清除掉栈    void ...

2018-07-23 17:29:25 161

原创 C++ 链表创建、插入、删除、遍历

#include "stdafx.h"#include <iostream>using namespace std;struct Node {    int data;    Node *next;};class Linklist{public :    Linklist();    ~Linklist();    void CreatList1(in...

2018-07-23 17:21:40 1428

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除