把二元查找树转变成排序的双向链表 题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14 / \ / \ 4 8 12 16 转换成双向链表 4=6=8=10=12=14=16。 /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val;…

2016年7月31日 0条评论 9点热度 阅读全文

对于二叉树的操作一般的我们使用递归的方法,因为在二叉树中每一个子树又是一颗二叉树。 这篇代码主要是演示了二叉树的以下操作 二叉树的创建 二叉树的三种遍历 求解二叉树的高度 求解指定层数的结点个数 求解二叉树的叶子结点个数 /********************************************************* - Copyright (C): 2016 - File name : tree.c - Author : - Zhaoxinan - - Date : 2016年07月31日 星…

2016年7月31日 0条评论 8点热度 阅读全文

对于二叉树的操作一般的我们使用递归的方法,因为在二叉树中每一个子树又是一颗二叉树。 这篇代码主要是演示了二叉树的以下操作 二叉树的创建 二叉树的三种遍历 求解二叉树的高度 求解指定层数的结点个数 求解二叉树的叶子结点个数 /********************************************************* - Copyright (C): 2016 - File name : tree.c - Author : - Zhaoxinan - - Date : 2016年07月31日 星…

2016年7月31日 0条评论 15点热度 阅读全文

关于文件模板大多数人想必都不陌生,我们在开发过程中经常用到,不过一般都是系统定义好的模板,比如创建自定义类的时候,创建一个VC的时候都用到了,下面描述一下改如何创建属于自己的Xcode文件模板 什么是Xcode模板 上图用到的就是Xcode自带的文件模板,有一系列系统为你建立好的条件模板。 如何创建自己的文件模板 首先先到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Tem…

2016年7月31日 0条评论 3点热度 阅读全文

#1015 : KMP算法 时间限制: 1000ms 单点时限: 1000ms 内存限制: 256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。 这一天,他们遇到了一只河蟹,于是河蟹就向小Hi和小Ho提出了那个经典的问题:“小Hi和小Ho,你们能不能够判断一段文字(原串)里面是不是存在那么一些……特殊……的文字(模式串)?” 小Hi和小Ho仔细思考了一下,觉得只能想到很简单的做法,但是又觉得既然河蟹先生这么说了,就肯定不会这么容…

2016年7月31日 0条评论 10点热度 阅读全文

二叉查找树BST总结分析 1.ADT(抽象数据类型) ADT BST {          数据元素:数据节点(键值,位置信息) 数据关系:父子关系 基本操作: 插入节点 查找节点 删除节点 遍历节点(前中后层序) } 2.二叉查找树性质:(不存在相同键值的节点) 1.空树 2.非空树并且左子树所有节点的键值均小于本节点的键值        右子树所有的节点的键值均大于本节点的键值 该节点的左右子树均为二叉查找树 3.二叉查找…

2016年7月31日 0条评论 22点热度 阅读全文

二叉查找树BST总结分析 1.ADT(抽象数据类型) ADT BST {          数据元素:数据节点(键值,位置信息) 数据关系:父子关系 基本操作: 插入节点 查找节点 删除节点 遍历节点(前中后层序) } 2.二叉查找树性质:(不存在相同键值的节点) 1.空树 2.非空树并且左子树所有节点的键值均小于本节点的键值        右子树所有的节点的键值均大于本节点的键值 该节点的左右子树均为二叉查找树 3.二叉查找…

2016年7月31日 0条评论 10点热度 阅读全文

从头到尾依次异或数组中的每一个数字,那么最终得到的结果就是两个只出现一次的数字的异或结果。因为其他数字都出现了两次,在异或中全部抵消掉了。由于这两个数字肯定不一样,那么这个异或结果肯定不为0,也就是说在这个结果数字的二进制表示中至少就有一位为1。我们在结果数字中找到第一个为1的位的位置,记为第N位。现在我们以第N位是不是1为标准把原数组中的数字分成两个子数组,第一个子数组中每个数字的第N位都为1,而第二个子数组的每个数字的第N位都为0。 #include <stdio.h> #include <s…

2016年7月31日 0条评论 7点热度 阅读全文

原题地址: http://acm.hdu.edu.cn/showproblem.php?pid=1043 题意:给一个3*3的方格,每个格子分别有1,2,3,4,5,6,7,8,x这九个编号,其中x这个格子可以通过与其相邻的上下左右格子交换来移动,问x这个格子要经过怎样的移动可以使方格变成1,2,3,4,5,6,7,8,x的状态,如果怎样也不可到达题目要求状态,输出" unsolvable"。 思路:某物通过不断改变自己的状态,来达到目标状态的题目可以用搜索?可就算知道用搜索可解,这题仍要考虑一下几点: 1.状态的…

2016年7月31日 0条评论 16点热度 阅读全文

声明:本文汇总了数据结构中一些常用的树,主要内容来自《数据结构(严蔚敏版)》和《算法导论》这两本教材。本文主要归纳出数据结构中常见的树的概念与简单的性质,并未给出具体的操作,如插入、删除、查找等。 1、树的定义 首先给出树的相关定义:树(tree)是包含n(n>0)个结点的有穷集,其中: 1)每个元素称为结点(node); 2)有一个特定的结点被称为根结点或树根(root); 3)除根结点之外的其余数据元素被分为m(m≥0)个互不相交的集合T1,T2,……Tm-1,其中每一个集合Ti(1<=i<=…

2016年7月31日 0条评论 4点热度 阅读全文