给你机会发出声音,但是不给你机会证明高层的决定是错的 RT: 时间复杂度O(n) 空间复杂度O(1)  原理就是有指针指向父节点和当前的节点,左孩子必指向右孩子,右孩子必指向父节点的下一个节点的左孩子    void Solution::yahooTree(TreeNode *root) { if (root == NULL) return; TreeNode *p = root; root->next = NULL; TreeNode *tmp = root->left; while(p){…
题目:对于一颗完全二叉树,要求给所有节点加上一个pNext指针,指向同一层的相邻节点:如果当前节点已经是该层的最后一个节点,则将pNext指针指向NULL:给出程序实现,并分析时间复杂度和空间复杂度. #include "stdafx.h" #include <iostream> #include <fstream> #include <vector> using namespace std; struct TreeNode { int m_nVal…
问题与解答 问题描述 对一棵完全二叉树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY. 输入格式 输入有多组数据. 每组数据第一行输入一个结点数n(1<=n<=1000),第二行将树中的这n个节点依次输入(每个结点存储的数据是一个数字),n个结点编号方式是层间从上到下.层内从左到右依次编号:第三行输入一个d代表深度. 当n=0时,表示输入结束. 输出格式 每组数据在一行上输出该树中第d层的所有节点,节点间用空格隔开.每组数据输出完成后要换行. 样例输入 4 1 2 3 4 2…
2014-10-30 分类:理论基础 / 网络开发 阅读(4127) 评论(29)  TCP是什么? 具体的关于TCP是什么,我不打算详细的说了:当你看到这篇文章时,我想你也知道TCP的概念了,想要更深入的了解TCP的工作,我们就继续.它只是一个超级麻烦的协议,而它又是互联网的基础,也是每个程序员必备的基本功.首先来看看OSI的七层模型: 我们需要知道TCP工作在网络OSI的七层模型中的第四层——Transport层,IP在第三层——Network层,ARP在第二层——Data Link层:在第…
mysql添加上log_bin步骤如下…
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include "stdafx.h" #include<iostream> #include<vector> #include<algorithm> #include<numeric> #include<list> #include<iterator> #inc…
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } }; */ class Solution { public: TreeNode* KthNode(TreeNode* pRoot, int k) { //中序递归     int count = 0;              if(co…
把VS2010开发的网站.net4.0部署到Windows Server 2003的服务器上去, Windows Server 2003操作系统自带的为IIS 6.0,IIS 6.0一般只支持.NET 2.0的程序,这就需要配置服务器上的IIS 6.0达到支持.NET 4.0的目的.在网上查找了一些文章,以供大家查阅和参考,主要有以下几个步骤: 一.升级.net framework至4.0 如果服务器已经安装了VS2010,则其中已经包含安装了.net 4.0 framework,否则就需要另外…
step one: 进入静态库文件的目录 cd 路径: step two:使用命令添加 svn add 静态库名字; 然后更新一下代码就OK…
配置文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVer…
目录结构: 效果图: MainActivity.java package qianfeng.com.pullrecyclerviewdemo; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.app.AppCompatActivi…
input[disabled],input:disabled,input.disabled{ color: #3e3e3e; -webkit-text-fill-color: #3e3e3e; -webkit-opacity:; opacity:; }…
private void button1_Click(object sender, System.EventArgs e) { //调用打开文件对话框获取要打开的文件WORD文件,RTF文件,文本文件路径名称 OpenFileDialog opd = new OpenFileDialog(); opd.InitialDirectory = \\"c:\\\\\\\\\\"; opd.Filter = \\"Word文档(*.doc)|*.doc|文本文档(*.txt)|*.t…
input[disabled],input:disabled,input.disabled{ color: #999; -webkit-text-fill-color:#999; -webkit-opacity:1; opacity: 1; }…
手机一些兼容性问题: 1.苹果手机输入框input:disabled显示模糊问题 input:disabled, input[disabled]{ color: #5c5c5c; -webkit-text-fill-#5c5c5c; border: 1px solid #5c5c5c; -webkit-opacity:1; opacity: 1; } 注:disabled 默认是0.3,所以样式里一定要加 opacity:1 2.苹果手机使用弹框布局,字体垂直不居中问题 设置了display:f…
树和图是数据结构中比较麻烦的东西,里面涉及的概念比较多,也最有用, 就比如一般树广泛应用于人工智能的博弈上,而基于图的广度优先和深度优先搜索也广泛应用于人工智能寻路上面 首先我们要把树进行分类: >一般树:任意节点子节点个数不限 >二叉树:任意节点子节点个数大于等于0,小于等于2,也即是说0<=n<=2 >森林:N个不相交的树的集合 在讲下面之前你有必要搞懂一些概念,这里我引入一张图片并试图说明这些概念: 根:我们习惯吧最上面的A节点表示为root(根),这个概念可以与生活联…
Arrays.sort() 采用了2种排序算法 -- 基本类型数据使用快速排序法,对象数组使用归并排序. java的Collections.sort算法调用的是归并排序,它是稳定排序 方法一:直接插入 1.基本思路: 在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的.如此反复循环,直到全部排好顺序. 2.代码实现: (1)首先设定插入次数,即循环次数,for(int i=1;i<length;i++),从…
每棵子树头节点的值都比各自左子树上所有节点值要大,也都比各自右子树上所有节点值要小. 二叉查找树的中序遍历序列一定是从小到大排列的. 一个节点的后继节点是指,这个节点在中序遍历序列中的下一个节点.相应的,前驱节点是指这个节点在中序遍历序列中的上一个节点. 毕竟二叉搜索树的查询复杂度只是介于 ~ 之间,并不存在查询优势.(二分法logn) 二叉树节点个数确定的情况下,整颗树的高度越低,节点的查询复杂度越低. 中序遍历所得关键字的值序列从小到大 二叉搜索树的两种极端情况: 完全二叉树,所有节点尽量填…
堆排序是一种树形选择排序方法,它的特点是:在排序的过程中,将array[0,...,n-1]看成是一颗完全二叉树的顺序存储结构,利用完全二叉树中双亲节点和孩子结点之间的内在关系,在当前无序区中选择关键字最大(最小)的元素. 1. 若array[0,...,n-1]表示一颗完全二叉树的顺序存储模式,则双亲节点指针和孩子结点指针之间的内在关系如下: 任意一节点指针 i:父节点:i==0 ? null : (i-1)/2  左孩子:2*i + 1  右孩子:2*i + 2 2. 堆的定义:n个关键字序…
Object Pascal 参考手册 (Ver 0.1)ezdelphi@hotmail.com OverviewOverview(概述)Using object pascal(使用 object pascal)Object Pascal 是一种高级编译语言,具有强类型(对数据类型的检查非常严格)特性,支持结构化和面向对象编程.它的优点包括代码的易读性.快速编译,以及支持多个单元文件从而实现模块化编程.Object Pascal 具有一些特性以支持 Borland 组件框架和 RAD(快速应用程…
堆在存储器中的表示是数组,堆只是一个概念上的表示.堆的同一节点的左右子节点都没有规律. 堆适合优先级队列(默认排列顺序是升序排列,快速插入与删除最大/最小值). 数组与堆 堆(完全二叉树)(构造大顶堆或者小顶堆的时间复杂度:O(logn)) 堆实现的优先级队列虽然和数组实现相比删除慢了些,但插入的时间快的多了: 当速度很重要且有很多插入操作时,可以选择堆来实现优先级队列. 堆插入删除的效率:时间复杂度是:O(logn). 小顶堆:父节点的值 <= 左右孩子节点的值 大顶堆:父节点的值 >= 左…
Java实现堆排序(大根堆)   堆排序是一种树形选择排序方法,它的特点是:在排序的过程中,将array[0,...,n-1]看成是一颗完全二叉树的顺序存储结构,利用完全二叉树中双亲节点和孩子结点之间的内在关系,在当前无序区中选择关键字最大(最小)的元素. 1. 若array[0,...,n-1]表示一颗完全二叉树的顺序存储模式,则双亲节点指针和孩子结点指针之间的内在关系如下: 任意一节点指针 i:父节点:i==0 ? null : (i-1)/2  左孩子:2*i + 1  右孩子:2*i +…
前言 Profiles面板功能的作用主要是监控网页中各种方法执行时间和内存的变化,简单来说它就是Timeline的数字化版本.它的功能选项卡不是很多(只有三个),操作起来比较前面的几块功能版本来说简单,但是里面的数据确很多,很杂,要弄懂它们需要花费一些时间.尤其是在内存快照中的各种庞杂的数据.在这篇博客中卤煮将继续给大家分享Chrome开发者工具的使用经验.如果你遇到不懂的地方或者有不对的地方,可以在评论中回复卤煮,文章最后卤煮会最后把秘籍交出来.下面要介绍的是Profiles.首先打开Prof…
m1w1d2_console_variable_constant 输入Console.WriteLine(); 输出Console.ReadLine(); 快捷键 折叠代码:快捷键“Ctrl+ K + S” 隐藏当前代码:组合键“Ctrl + M,M” 显示全部代码:组合键“Ctrl + M,L” 注释:组合键“Ctrl + K + C”; 取消注释:组合键“Ctrl + K + U” 批量操作:按住Alt选择一片区域,前段会有蓝线 快捷写法 Console.WriteLine();CW + 双…
B树 B-树,就是B树,B树的原英文名是B-tree,所以很多翻译为B-树,就会很多人误以为B-树是一种树.B树是另外一种树.其实,B-tree就是B树. B-树的定义 B树(B-tree)是一种树状数据结构,是一种平衡的多路查找树,能够用来存储排序后的数据.这种数据结构能够让查找数据.循序存取.插入数据及删除的动作,都在对数时间内完成.B树,概括来说是一个一般化的二叉查找树,可以拥有多于2个子节点.与自平衡二叉查找树不同,B-树为系统最优化大块数据的读和写操作.B-tree算法减少定位记录时所…
https://leetcode.com/problems/complete-binary-tree-inserter/ 给出树节点的定义和完全二叉树插入器类的定义,为这个类补全功能.完全二叉树的定义为:这颗二叉树除最后一层外左右层的节点都是满的(对于第i层有2^(i-1)个节点),最后一层节点都出现在尽量靠左的位置. /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left;…
完全二叉树是每一层(除最后一层外)都是完全填充(即,结点数达到最大)的,并且所有的结点都尽可能地集中在左侧. 设计一个用完全二叉树初始化的数据结构 CBTInserter,它支持以下几种操作: CBTInserter(TreeNode root) 使用头结点为 root 的给定树初始化该数据结构: CBTInserter.insert(int v) 将 TreeNode 插入到存在值为 node.val = v 的树中以使其保持完全二叉树的状态,并返回插入的 TreeNode 的父结点的值: C…
给定一棵完全二叉树的头节点head,返回这棵树的节点个数.如果完全二叉树的节点数为N,请实现时间复杂度低于O(N)的解法. 分析:遍历的话不管是前序.中序.后序还是层次都是O(N),低于O(N)只能是O(lgN),向二分方向努力. 完全二叉树:除最后一层外,每一层上的节点数均达到最大值:在最后一层上只缺少右边的若干结点. 只有最后一层不满,我们可以根据左子树的最右节点或者右字数的最左节点来判断左子树是不是满二叉树, 若左字树满,可用公式计算左字树的节点数2^(l-1), 总节点数n= 2^(l-…
本来就是基础知识,不能丢的太干净,今天竟然花了那么长的时间才写出来,记一下. 有如下的一颗完全二叉树: 先序遍历结果应该为:1  2  4  5  3  6  7 中序遍历结果应该为:4  2  5  1  6  3  7 后序遍历结果应该为:4  5  2  6  7  3  1 层序遍历结果应该为:1  2  3  4  5  6  7 二叉树的先序遍历.中序遍历.后序遍历其实都是一样的,都是执行递归操作. 我这记录一下层次遍历吧:层次遍历需要用到队列,先入队在出队,每次出队的元素检查是其是…
A complete binary tree is a binary tree in which every level, except possibly the last, is completely filled, and all nodes are as far left as possible. Write a data structure CBTInserter that is initialized with a complete binary tree and supports t…