数据结构
文章平均质量分 76
wingooom
程序猿一只
展开
-
树的基本概念
树的特点每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;树的种类1. 一般树 2. 二叉树 任意一个结点的子结点的个数最多为两个 子结点的位置不可更改 (二叉树是有序的)一般二叉树完全二叉树 满二叉树原创 2016-03-16 15:30:38 · 376 阅读 · 0 评论 -
数据结构之排序篇
概述参考https://www.zybuluo.com/MicroCai/note/77440 http://www.jianshu.com/p/ae97c3ceea8d用到的数据结构都是数组(array)稳定排序稳定排序是指:若是数组中有相同的元素,则相同的元素的相对位置不变。 排序名称 最好 最坏 平均时间复杂度 空间复杂度 备注 冒泡(Bubble Sort)原创 2016-03-29 16:29:42 · 661 阅读 · 2 评论 -
数据结构之链表
常用链表定义:public class ListNode { int val; ListNode next; ListNode(int x) { val=x; } } 单链表的创建与遍历public class LinkList { public Node head; public Node cu原创 2016-03-20 19:30:25 · 582 阅读 · 0 评论 -
数据结构之栈和队列
栈先进后出用数组实现栈public class StackByArray<E> { // 栈的长度 private int length; // 栈 private Object[] array; // 栈顶的下标 private int topIndex = -1; /** * StackByArry:构造原创 2016-03-20 19:29:44 · 310 阅读 · 0 评论 -
数据结构之数组篇
连续子数组的最大和题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?原创 2016-04-28 13:57:46 · 480 阅读 · 0 评论 -
数据结构之树之不同种类篇
二叉搜索树(BST)基础知识树通常用来存储已排序或已有序的数据。在树中存储数据,常见的就是二叉搜索树(Binary Search Tree,BST)BST中的数据是按值排序的:一个节点所有的左侧子孙节点都小于或等于该节点,所有的右侧子孙节点都大于或等于该节点。当面试官说树的时候,通常二叉树,再确认是否为二叉搜索树如果使用中序遍历二叉搜索树,遍历的顺序会按照节点关键字的大小关系从小到大依次进行原创 2016-03-16 17:15:59 · 694 阅读 · 0 评论 -
面试常见算法
好东西-算法寻找最小的k个数题目描述输入n个整数,输出其中最小的k个。解法一:快排要求一个序列中最小的k个数,按照惯有的思维方式,则是先对这个序列从小到大排序,然后输出前面的最小的k个数。至于选取什么的排序方法,我想你可能会第一时间想到快速排序(我们知道,快速排序平均所费时间为 n*logn ),然后再遍历序列中前k个元素输出即可。因此,总的时间复杂度: O(n * log n)+O(k)=O原创 2016-04-28 11:27:50 · 541 阅读 · 0 评论 -
数据结构之字符串
字符串的排列输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。 https://www.nowcoder.com/practice/fe6b651b66ae47d7acce78ffdd9a96c7?tpId=13&tqId=11180&rp=2&ru=%原创 2016-04-10 19:50:49 · 602 阅读 · 0 评论 -
数据结构之二叉树牛客网篇
重建二叉树题目链接:https://www.nowcoder.com/practice/8a19cbe657394eeaac2f6ea9b0f6fcf6?tpId=13&tqId=11157&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入原创 2016-03-20 19:30:53 · 897 阅读 · 0 评论 -
数据结构之位运算篇
概述&:与运算,二进制按位与运算,有0则结果为0 |:或运算,二进制按位或运算,有1则结果为0 ^:异或运算,相同为0,不同为1。任何数与自己异或为0。0与任何数异或为任何数。 <<:左移 a << b, 表示a左移b位,等于a*(2^b); >>:右移 a >> b , 表示a右移b位,等于a/(2^b) >>>:无符号右移 ~:位非,~5 =-6; 5转换为二进制原创 2016-04-28 13:38:28 · 363 阅读 · 0 评论 -
数据结构面试
http://blog.csdn.net/derrantcm/article/details/45330789原创 2016-03-23 21:08:30 · 404 阅读 · 0 评论 -
堆(待完成)
的原创 2016-03-18 11:05:06 · 246 阅读 · 0 评论 -
平衡二叉树(待完成)
平衡二叉树(AVL)平衡二叉树(Balanced Binary Tree)通常指平衡二叉搜索树 平衡二叉树(Balanced binary tree)是由阿德尔森-维尔斯和兰迪斯(Adelson-Velskii and Landis)于1962年首先提出的,所以又称为AVL树 定义 具有如下性质的二叉排序树 左右子树深度之差的绝对值不超过1; 左右子树仍然为平衡二叉树; 平原创 2016-03-18 10:47:56 · 281 阅读 · 0 评论 -
二叉树
前言面试中的树都是二叉树,即有左右两个节点的树牢记:root->left表示左子树,root->right表示右子树,通过树的递归解决问题求树的高int BT_depth(TreeNode* root){ if(root==NULL) return 0; int depth; depth=1+max(BT_depth(root->left),BT_dep原创 2016-03-16 16:25:59 · 436 阅读 · 0 评论 -
数据结构之二叉树总篇(Java)
前言面试中的树都是二叉树,即有左右两个节点的树牢记:root.left表示左子树,root.right表示右子树,通过树的递归解决问题二叉树定义public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) {原创 2016-04-19 13:05:53 · 785 阅读 · 0 评论