自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shenxingbo的专栏

仲夏夜,星之空, 年少轻狂挽如风

  • 博客(79)
  • 资源 (14)
  • 论坛 (3)
  • 收藏
  • 关注

原创 Thymeleaf学习记录

历史JSP 在 JavaWeb 的世界中统治了很长一段时间。但是,由于血统不纯正,表现一般般,许多技术跃跃欲试,欲取代其统治地位。jsp缺点jsp 标签和 html 标签混在一起,生成的文档比较混乱在 web 浏览器或者 html 编辑器中查看未经渲染的 jsp 页面和预想差别很大jsp 和 servlet 紧耦合,只能用在基于 Servlet 的 web 项目中 Th...

2018-06-26 16:31:29 196

原创 k数和

思路这道题感觉是一个非常好的动态规划的题目,动态规划方程:d[i][j][target]=d[i−1][j][target]+d[i−1][j−1][target−a[i]]d[i][j][target]=d[i−1][j][target]+d[i−1][j−1][target−a[i]]d[i][j][target] = d[i-1][j][target] + d[i-1][j-1][tar...

2018-06-07 22:17:40 250

原创 53. 翻转字符串

思路首先翻转字符串整体,然后对于每个单词进行翻转,两次翻转的函数使用同一个函数。翻转函数的思路:使用队列将String转成char[],然后反过来存储(下面就是使用的这种方法)用两个指针,进行前后字符的对换代码 public static String reverseWords(String s) { if (s.length() <= 1)...

2018-06-05 14:45:31 110

原创 50. 数组剔除元素后的乘积

思路这道题使用的是分治法, result[i] = left[i-1] + right[i+1];下面使用巧妙的实现代码public static List<Long> productExcludeItself(List<Integer> nums) { Long temp = Long.parseLong("1"); ...

2018-06-02 10:58:24 99

原创 阿里云服务器

修改阿里云服务器的主机名: vim /etc/hostname

2018-05-25 10:55:05 102

原创 落单的数 II

思路:整体的一个思路就是对 n 个数所有的位求和,然后 在对每一个位上的 sum mod 3 ,这样就能够把单独的那个数字找出来代码:public int singleNumberII(int[] A) { int result = 0; for (int i = 0; i < 32; i++) { int coun...

2018-04-20 23:11:13 70

原创 最小子串覆盖

思路这道题 lintcode 上面描述的不完整,应该是找到的子串同时满足开始 index 和 length最小核心思想就是使用两个数组 sCount 和 tCount 来记录已经出现的字符的个数,同时使用一个变量 count 已经符合 target 中字母的个数同时一个经典之处是, 使用 while 循环缩小窗口的左边界 代码 public static Strin...

2018-04-03 11:06:01 94

原创 搜索二维矩阵 II

思路其实总的思想就是二分查找,但是其中的一个技巧是当查找不到的时候返回 right 值,这时间的 right 值指向值的特性是 a[right] < target其次需要注意的是一定要处理好 边界条件 和特殊的 测试值代码 public static int searchMatrix(int[][] matrix, int target) { if ...

2018-04-02 17:21:39 72

原创 全组合

思路使用递归的方式,实现全组合。使用的公式 C(m, n) = C(m-1, n-1) + C(m, n-1);代码public void recursion(int index, int count, String str) { //对 begin - end 之间的数字进行全组合 if (count == 0) { list.add...

2018-03-12 15:12:37 94

原创 三数之和

思路感觉这道题自己的思路还是比较low的,感觉在效率上一点都不高。没想到居然通过了(0.0)。 简单记录下这道题使用了两个小知识: 首先是降低复杂度,首先对于(i, j)和(j, i)是 不允许出现的。所以在for 循环中使用 j < i 避免这种情况; 其次,结果中一定还存在重复元,这时候使用 set 来去除重复元。对于找到的三个数 a+ b + c = 0; 首先将 abc 进行排序,然

2018-02-06 14:36:12 940

原创 最长上升子序列

思路这道题考察的是 动态规划 , 这道题的思路和最大子段和是一样的,曾经都写过最长上升子序列,动态规划的方程 可以见参考代码 public int longestIncreasingSubsequence(int[] nums) { int[] len = new int[nums.length]; if (nums.leng

2018-01-30 15:45:10 101

原创 主元素 II

思路本题主要考察的是map数组的使用,唯一的小技巧是在往map中添加元素的时候,时刻的判断着 某个元素的数量是否超过总数的的 1/3代码public int majorityNumber(List nums) { Map hash = new HashMap(); Integer temp, count; for (int i =

2018-01-30 09:44:18 70

原创 散点图

代码画直线#我们通常引入的是分模块pyplot ,大部分的功能都在这个包中import matplotlib.pyplot as plt import numpy as npx = np.linspace(-1, 1, 50) #指定的间隔内,返回均匀产生的数字 y = 2 * x + 1plt.figure()plt.plot(x, y)plt.show()

2018-01-17 22:59:04 1589

原创 恢复旋转排序数组

思路这道题应该首先计算出来 每个数字到其 原位置 移动的距离。但是有一个陷阱是,当使用程序移动的 时候,有时间遇见 1, 3, 5 只是在几个数之间交换的情形(死循环),所以要保证程序能够跳的出来。代码public void recoverRotatedSortedArray(List nums) { int temp = nums.get(0);

2018-01-15 21:27:23 74

原创 翻转链表

思想其实就是设置两个指针 pointer1, pointer2 。同步的移动pointer1, pointer2 ,head 这3个指针。这 3 个指针的前后顺序刚好是pointer1, pointer2 ,head。这道题应该注意的是while循环的判断条件: pointer2 != null代码 public ListNode reverse(ListNode hea

2018-01-15 19:37:46 69

原创 数组划分

思路这道题没什么考察点,主要是要注意两个for循环,一定要加上pos1 < pos2 防止越界。同时,注意题中最后的要求,如果都比k小,则返回数组的长度。代码public static int partitionArray(int[] nums, int k) { // write your code here int pos1 = 0;

2017-12-29 10:53:40 83

原创 插入区间

思路这道题本来以为没什么问题的,但是,真正实现起来,还是感到有点乱。这道题的收获: ArrayList是有序的list中有add(pos, object)方法,就是在指定位置处插入元素代码public List<Interval> insert(List<Interval> intervals, Interval newInterval) { List<Interval> l

2017-12-29 10:28:09 179

原创 交叉字符串

思路这道题开始考察了尝试了两个思路,这道题不能简单的从相同的字母的个数是否相等下手。应该要想到字幕出现的顺序。最后使用了递归,但是一直感觉代码的效率不高代码 String s1; String s2; String s3; String s4; public Boolean flag = false; public boolean isInterle

2017-12-28 22:56:59 139

原创 平面列表

思路这道题是比较简单的题,简单的考察下递归的使用代码 private List<Integer> list = new ArrayList<Integer>(); // @param nestedList a list of NestedInteger // @return a list of integer public List<Integer> flatten(Li

2017-12-26 15:10:04 115

原创 子集

思路这道题的思路很直观,其实任何 2 个数字的全组合都是可以使用类似于00, 01, 10, 11来标志。那么自己维护一个二进制的数组,然后实现遍历输出即可。感觉这道题考察了java的 comparable 和 comparator接口,两个接口的介绍见参考1自己实现了一下,虽然通过了,但是代码不优雅,所以参考了网上别人写的,实现如下:代码自己动手实现时候写的二进制运算,先记录下来:s

2017-12-26 11:34:08 87

原创 带重复元素的排列

思路这道题感觉考察就是全排列,只是存储的时候使用Set存储,就能防止重复元素做完本题的感悟是:一定要掌握好java的容器,同时感觉自己对于容器的遍历掌握的不好代码static List<List<Integer>> list = new LinkedList<List<Integer>>(); static Set<List<Integer>> set = new HashSet<Li

2017-12-22 20:13:15 182

原创 全排列

思路一直认为全排列是一个很经典的问题,从前都实现过一次,这次又做了一次。具体思路,下面链接注意的地方:在java中都是值传递,所以对于swap(a, b)函数的使用,一定要注意,在此处是需要改变数组的内容的,所以需要返回数组函数代码static List<List<Integer>> list = new LinkedList<List<Integer>>(); public List

2017-12-22 19:40:06 131

原创 二分查找

思路二分查找的变形,主要的难点在于不仅要找到目标元素,并且要找到下标最小的。可以按照二分查找找到等于目标元素的下标,然后往前遍历,直到找到最小的下标。这里需要注意的是:当找到0下标的元素时候,不能往前面迭代了,因为会导致数组越界代码 public static int binarySearch(int[] nums, int target) { int begin = 0

2017-12-22 18:56:24 53

原创 排序

排序始终是个绕不过去的问题 0.0归并排序思路步骤 划分问题: 把序列分成元素个数尽量相等的两半递归求解:把两半元素分别排序合并问题:把连个有序表合并成一个算法的时间复杂度: O(nlogn) (这个我还没理解)注意在上图中,比如说当序列变成A[i]:38,49,65,97B[j]:13,27,76 A[i]: 38,49,65,97 B[j] :13 ,27,76

2017-12-20 14:52:29 69

原创 丑数 II

思路我们可以首先写出前几个丑数作为种子,比如 array = [1, 2, 3, 4, 5],这是前5个丑数,我们如何确定第6个呢? 第六个丑数,一定是 value2=min(array[i]∗2),value3=min(array[i]∗3),value5=min(array[i]∗5)value2=min(array[i] *2), value3=min(array[i] * 3),value

2017-12-20 12:02:42 87

原创 A + B 问题

基础java运算符: ^: 异或运算符&: 与运算符~:运算符|: 运算符思想对于 5 + 3 来说: 5的二进制是:a = 101 ; 3 二进制是 b = 011我们可以通过下面的方法得到:101 ^ 011 = 110(101 & 011) << 1 = 010110 ^ 010 = 100(110 & 010) <<1 = 100100 ^ 100 = 000

2017-12-20 11:48:32 99

原创 python小知识

#!/usr/bin/python 作用:指定解释器的位置、python中默认的编码是ASCII编码,在没有改变编码格式的时候,无法打印汉字。在文件的第一行,或者第二行加入下面的说明:#coding:utf-8

2017-12-16 10:42:37 92

原创 c++中的常用语法

知识点long long , long , int 的长度: 32位系统:int(4个字节) long(4个字节) long long(8个字节)64位系统:int(4个字节) long (8个字节) long long(8个字节)推荐的声明数组的方法: const int maxn = 100 + 10;int A[maxn];c++中有bool类型,但是c中没有 -

2017-12-12 23:03:06 169

原创 最长上升子序列问题(LIS)

问题方法状态转移方程: 需要注意的是: 当完全逆序的情况下,每个 dp(i) = 1代码#include<iostream>using namespace std;int data[] = {1,6,2,3,7,5};int record[6];int max(int a, int b) { return a > b? a:b;}int main() { int l

2017-12-12 16:57:44 131

原创 无关元素

唯一分解定理算术基本定理,又称为正整数的唯一分解定理,即:每个大于1的自然数均可写为质数的积,而且这些素因子按大小排列之后,写法仅有一种方式。(这个定理真的是有趣)问题知识补充:C(k, n) = (n - k +1) / k * C(k-1, n);思路首先将m利用 分解唯一定理 分解成 质数指数的连乘形式, 然后对于补充知识的公式,从C(1 , n) 算起,一次检测是否 C(k, n

2017-12-07 23:24:54 142

原创 扩展欧几里德算法

遇见这道题,对求最大公约数又有了新的认识欧几里得问题int gcd(int a, int b) { if (b == 0) return a; else return gcd(b, a%b);}扩展欧几里得问题对于ax + by = c; 在 c % gcd(a,b) = 0的时候,我们一般先求 a/gcd(a,b) x + b/gcd(

2017-12-07 21:25:22 59

原创 数字三角形问题

问题描述状态转移方程代码实现方法1:效率低下#include<iostream> #include<string.h>#define maxn 1000 + 5using namespace std;int a[maxn][maxn];int d[maxn][maxn];int n;int D (int i, int j) { return a[i][j] + (i ==

2017-12-07 11:00:59 118

原创 全组合(高效)

使用以为运算符生成全组合(很经典):package com.set.test;public class SetTest { public static void main(String[] args) { String str[] = { "A", "B", "C", "D", "E" }; int nCnt = str.length; int nB

2017-12-07 09:12:49 79

原创 第12章 通过异常处理错误

基本异常

2017-11-30 15:46:31 82

原创 第8章 多态

最近编程时候,遇见了一个问题,当时怎么都想不通。最后,谁知是多态。所以要静心研究下多态。面向对象的三大特征: 封装 继承 多态多态通过分离 做什么 和 怎么做 ,从另外的一个角度将接口和实现分离开来。封装通过合并特征和行为来创建新的数据类型。“实现隐藏”则是通过将细节“私有化”把接口和实现分离开。多态的作用是消除类型之间的耦合关系。多态也叫作动态绑定,后期绑定,运行时绑定。 -首先是一个

2017-11-28 14:49:42 76

原创 第2章 一切都是对象

基础知识列表内容

2017-11-28 11:47:27 63

原创 关于内存的细节

http://blog.csdn.net/yabay2208/article/details/71108514

2017-11-27 10:16:25 69

原创 python基本语法

基本数据类型数组文件集合常用结构类

2017-11-24 11:07:24 70

原创 第5章 初始化与清理

java中通过使用构造器,类的设计者可以确保每个请注意由于构造器的名称必须和类名完全相同,所以,每个方法首写字母小写的编码风格并不适用于构造器。java中的初始化与创建是绑在一起的,两者不能分离。相同的词表达的是不同的含义,这叫做:重载区分重载的方法是:每个重载的方法都要有独一无二的参数类型的列表甚至参数顺序的不同也足以区分两个方法,但是一般不建议这么做。默认构造器是没有形式参数的,它的

2017-11-24 11:04:59 69

原创 第13章 字符串

不可变的String:String对象是不可变的,String类每一个看起来会修改String值的方法,都是创建了全新的对象。而最初的String是丝毫未动的。String q = "howdy";String qq = upcase(q);print(q); //howdyprint(qq);//HOWDYString对象只有只读特性,所以指向它的任何的引用都不可能改变它的值,因此,也就

2017-11-04 22:01:10 81

计算机操作系统+第三版 高清完整PDF版

计算机操作系统 第 三 版 汤小丹 梁红兵 哲凤屏 汤子瀛 西安电子科技大学出版社 2 0 0 7 编著第一章 操作系统引论

2015-04-18

计算机组成原理

关于计算机组成原理的资料 PPT 计算机组成原理实验指导.pdf 白中英《计算机组成原理》第四版课后习题参考答案

2014-10-04

myeclipse10.0破解工具

关于myeclipse的破解器

2014-10-04

javaee source

javaee中引入资源包 javaee中引入类库

2014-08-31

随机过程.pdf

随机过程 随机过程 随机过程 随机过程 随机过程 随机过程 随机过程 随机过程

2017-09-29

UML基础与Rose建模案例(第3版).pdf

UML基础与Rose建模案例(第3版) 挺不错的资源,一起分享

2016-05-14

CodeIgniter2.0中文手册

CodeIgniter2.0中文手册

2016-03-20

Junit_api 文档

junit4.7的文档

2015-05-04

junit 4.8.2

用于测试的jar包用于测试的jar包 ;

2015-05-04

编译原理 陈火旺 pdf

编译原理陈火旺pdf

2015-03-21

程序设计语言编译原理答案

什么是编译程序 编译程序概述 编译程序的结构 编译程序的总框架

2015-03-18

易学 c++ 潘嘉杰

本书主要是依照计算机本科专业的实际教学需要来编排内容的。虽然内容的条理可能不及某些专业的C++工具书那么清晰,但是这样的次序让初学者比较容易上手。毕竟那些工具书是面向一些已经掌握C++或有较高的高级语言程序设计基础的读者。编写此书的主旨就是不要一下子把什么都说出来,而是一点一点循序渐进地增长读者的能力。这样,读者就不会一下子被那么多难以接受的概念吓住,以至于失去了继续学习的信心。本书所有程序使用的编译器是Microsoft Visual C++,并介绍C++标准,Borland C++我们不作讨论,以免初学者把各种概念混淆起来,也有效降低了学习的压力。对于一些C++中存在却不常用的内容,本书一般一笔带过或不予提及。因为这些内容在应试方面不作要求,在实际使用上也可以由其他方法代替。但是,如果您是一位初学者,那么就请务必要看到本书的每一个角落。您所遗落的一句话就有可能是一个知识的关键点。

2015-03-14

thing in c++

Thinking in C++(2nd Edition) Volume one 《C++编程思想》,经典教材,学习C++必看书之一。

2015-03-14

数据结构 严蔚敏 代码

1.1 数组和字符串 2 1.1.1 一维数组的倒置 2 范例1-1 一维数组的倒置 2 ∷相关函数:fun函数 1.1.2 一维数组应用 3 范例1-2 一维数组应用 3 1.1.3 一维数组的高级应用 5 范例1-3 一维数组的高级应用 5 1.1.4 显示杨辉三角 7 范例1-4 显示杨辉三角 7 ∷相关函数:c函数 8 1.1.5 魔方阵 9 范例1-5 魔方阵 9 1.1.6 三维数组的表示 14 范例1-6 三维数组的表示 14 ∷相关函数:InitArray函数 1.1.7 多项式的数组表示 17 范例1-7 多项式数组的表示 17 1.1.8 查找矩阵的马鞍点 19 范例1-8 查找矩阵的马鞍点 19 ∷相关函数:Get_Saddle函数 1.1.9 对角矩阵建立 21 范例1-9 对角矩阵建立 21 ∷相关函数:Store函数 1.1.10 三对角矩阵的建立 22 范例1-10 三对角矩阵的建立 22 ∷相关函数:Store函数 1.1.11 三角矩阵建立 24 范例1-11 三角矩阵建立 24 ∷相关函数:Store函数 1.1.12 对称矩阵的建立 25 范例1-12 对称矩阵的建立 25 ∷相关函数:store函数 1.1.13 字符串长度的计算 28 范例1-13 字符串长度的计算 28 ∷相关函数:strlen函数 1.1.14 字符串的复制 29 范例1-14 字符串的复制 29 ∷相关函数:strcpy函数 1.1.15 字符串的替换 31 范例1-15 字符串的替换 31 ∷相关函数:strrep函数 1.1.16 字符串的删除 33 范例1-16 字符串的删除 33 ∷相关函数:strdel函数 1.1.17 字符串的比较 35 范例1-17 字符串的比较 35 ∷相关函数:strcmp函数 1.1.18 字符串的抽取 36 范例1-18 字符串的抽取 36 ∷相关函数:substr函数 1.1.19 字符串的分割 38 范例1-19 字符串的分割 38 ∷相关函数:partition函数 1.1.20 字符串的插入 40 范例1-20 字符串的插入 40 ∷相关函数:insert函数 1.1.21 字符串的匹配 42 范例1-21 字符串的匹配 42 ∷相关函数:nfind函数 1.1.22 字符串的合并 43 范例1-22 字符串的合并 43 ∷相关函数:catstr函数 1.1.23 文本编辑 45 范例1-23 文本编辑 45 ∷相关函数:StrAssign函数 1.2 栈和队列 54 1.2.1 用数组仿真堆栈 54 范例1-24 用数组仿真堆栈 54 ∷相关函数:push函数 pop函数 1.2.2 用链表仿真堆栈 57 范例1-25 用链表仿真堆栈 57 ∷相关函数:push函数 pop函数 1.2.3 顺序栈公用 59 范例1-26 顺序栈公用 59 ∷相关函数:push函数 pop函数 1.2.4 进制转换问题 61 范例1-27 进制转换问题 61 ∷相关函数:MultiBaseOutput函数 1.2.5 顺序队列操作 64 范例1-28 顺序队列操作 64 ∷相关函数:push函数 pop函数 1.2.6 循环队列 66 范例1-29 循环队列 66 ∷相关函数:EnQueue函数 DeQueue函数 1.2.7 链队列的入队、出队 69 范例1-30 链队列入队、出队 69 ∷相关函数:push函数 pop函数 1.2.8 舞伴问题 71 范例1-31 舞伴问题 71 ∷相关函数:EnQueue函数 DeQueue函数 DancePartner函数 1.3 链表 75 1.3.1 头插法建立单链表 75 范例1-32 头插法建立单链表 75 ∷相关函数:createlist函数 1.3.2 限制链表长度建立单链表 77 范例1-33 限制链表长度建立长单链表 77 ∷相关函数:createlist函数 1.3.3 尾插法建立单链表 79 范例1-34 尾插法建立单链表 79 ∷相关函数:createlist函数 1.3.4 按序号查找单链表 80 范例1-35 按序号查找单链表 80 ∷相关函数:getnode函数 1.3.5 按值查找单链表 82 范例1-36 按值查找单链表 82 ∷相关函数:locatenode函数 1.3.6 链表的插入 84 范例1-37 链表的插入 84 ∷相关函数:insertnode函数 1.3.7 链表的删除 86 范例1-38 链表的删除 86 ∷相关函数:deletelist函数 1.3.8 归并两个单链表 88 范例1-39 归并两个单链表 88 ∷相关函数:concatenate函数 1.3.9 动态堆栈 90 范例1-40 动态堆栈 90 ∷相关函数:push函数 Pop函数 1.3.10 动态队列 93 范例1-41 动态队列 93 ∷相关函数:Enqueue函数 1.3.11 初始化单循环链表 95 范例1-42 初始化单循环链表 95 ∷相关函数:ListLength_CL函数 1.3.12 查询元素的前驱和后继 98 范例1-43 查询元素的前驱和后继 98 ∷相关函数:PriorElem_CL函数 NextElem_CL函数 1.3.13 单循环链表中元素的删除 101 范例1-44 单循环链表中元素的删除 101 ∷相关函数:ListDelete_CL函数 1.3.14 单循环链表的清除和销毁 107 范例1-45 单循环链表的清除和销毁 107 ∷相关函数:DestroyList函数 1.3.15 仅设表尾指针循环链表的合并 110 范例1-46 仅设表尾指针循环链表的合并 110 ∷相关函数:MergeList_CL函数 1.3.16 正序输出双向链表 113 范例1-47 正序输出双向链表 113 ∷相关函数:ListInsert函数 ListTraverse函数 1.3.17 逆向输出双向链表 116 范例1-48 三角矩阵建立 116 ∷相关函数:ListTraverseBack函数 1.3.18 删除双向链表中的节点 121 范例1-49 删除双向链表中的节点 121 ∷相关函数:ListDelete函数 1.3.19 双向链表的元素个数 124 范例1-50 双向链表的元素个数 124 ∷相关函数:ListLength函数 1.3.20 判断双向链表是否为空 126 范例1-51 判断双向链表是否为空 126 ∷相关函数:ListEmpty函数 1.3.21 双向链表元素值的查询 129 范例1-52 双向链表元素值的查询 129 ∷相关函数:GetElemP函数 1.3.22 稀疏矩阵的建立 136 范例1-53 稀疏矩阵的建立 136 ∷相关函数:Create函数 1.3.23 稀疏矩阵的删除 138 范例1-54 稀疏矩阵的删除 138 ∷相关函数:erase函数 1.4 树和二叉树 141 1.4.1 获得二叉树的深度和根(顺序结构) 141 范例1-55 获得二叉树的深度和根 141 ∷相关函数:BiTreeDepth函数 Root函数 1.4.2 获得二叉树的深度和根(链表结构) 144 范例1-56 获得二叉树的深度和根 144 ∷相关函数:BiTreeDepth函数 Root函数 1.4.3 树的插入(顺序结构) 147 范例1-57 树的插入 147 ∷相关函数:InsertChild函数 1.4.4 节点的修改(顺序结构) 150 范例1-58 节点的修改 150 ∷相关函数:Assign函数 1.4.5 节点的修改(链式结构) 154 范例1-59 节点的修改 154 ∷相关函数:Assign函数 1.4.6 双亲、孩子和兄弟节点的查询(顺序结构) 158 范例1-60 双亲、孩子和兄弟节点的查询 158 ∷相关函数:Parent函数 LeftChild函数 RightChild函数 LeftSibling函数 RightSibling函数 1.4.7 双亲、孩子和兄弟节点的查询(链式结构) 162 范例1-61 双亲、孩子和兄弟节点的查询 162 ∷相关函数:Parent函数 LeftChild函数 RightChild函数 LeftSibling函数 RightSibling函数 1.4.8 中序遍历二叉树(顺序结构) 169 范例1-62 中序遍历二叉树 169 ∷相关函数:InOrderTraverse函数 1.4.9 中序遍历二叉树(链式结构) 171 范例1-63 中序遍历二叉树 171 ∷相关函数:InOrderTraverse函数 1.4.10 中序非递归遍历二叉树(链式结构)(1) 174 范例1-64 中序非递归遍历二叉树 174 ∷相关函数:InOrderTraverse函数 1.4.11 中序非递归遍历二叉树(链式结构)(2) 177 范例1-65 中序非递归遍历二叉树 177 ∷相关函数:InOrderTraverse2函数 1.4.12 后序遍历二叉树(顺序结构) 180 范例1-66 后序遍历二叉树 180 ∷相关函数:PostOrderTraverse函数 1.4.13 后序遍历二叉树(链式结构) 183 范例1-67 后序遍历二叉树 183 ∷相关函数:PostOrderTraverse函数 1.4.14 层次遍历二叉树(顺序结构) 186 范例1-68 层次遍历二叉树 186 ∷相关函数:LevelOrderTraverse函数 1.4.15 层次遍历二叉树(链式结构) 188 范例1-68 层次遍历二叉树 188 ∷相关函数:LevelOrderTraverse函数 1.4.16 树的合并 191 范例1-70 树的合并 191 ∷相关函数:Find函数 Union函数 1.4.17 树的二叉链表存储的基本操作 193 范例1-71 树的二叉链表存储的基本操作 193 ∷相关函数:LevelOrderTraverse函数 1.4.18 二叉树的三叉链表存储的基本操作 201 范例1-72 二叉树的三叉链表存储表示 201 ∷相关函数:CreateBiTree函数 1.4.19 二叉树的二叉线索存储的基本操作 212 范例1-73 二叉树的二叉线索存储 212 ∷相关函数:CreateBiThrTree函数 1.4.20 树的双亲表存储的基本操作 215 范例1-74 树的双亲表存储的基本操作 215 ∷相关函数:CreateTree函数 1.4.21 哈夫曼编码(1) 223 范例1-75 哈夫曼编码(1) 223 ∷相关函数:HuffmanCoding函数 1.4.22 哈夫曼编码(2) 226 范例1-76 哈夫曼编码(2) 226 ∷相关函数:HuffmanCoding函数 1.5 排序 229 1.5.1 直接插入排序 229 范例1-77 直接插入排序 229 ∷相关函数:InsertSort函数 1.5.2 折半插入排序(顺序结构) 231 范例1-78 折半插入排序(顺序结构) 231 ∷相关函数:BInsertSort函数 1.5.3 2—路插入排序(顺序结构) 233 范例1-79 2—路插入排序(顺序结构) 233 ∷相关函数:P2_InsertSort函数 1.5.4 折半插入排序(链式结构) 235 范例1-80 折半插入排序(链式结构) 235 ∷相关函数:Arrange函数 1.5.5 2—路插入排序(链式结构) 238 范例1-81 2—路插入排序(链式结构) 238 ∷相关函数:Rearrange函数 1.5.6 希尔排序 241 范例1-82 希尔排序 241 ∷相关函数:ShellSort函数 1.5.7 冒泡排序 243 范例1-83 冒泡排序 243 ∷相关函数:bubble_sort函数 1.5.8 一趟快速排序 246 范例1-84 一趟快速排序 246 ∷相关函数:QSort函数 1.5.9 一趟快速排序的改进算法 248 范例1-85 一趟快速排序的改进算法 248 ∷相关函数:QuickSort函数 1.5.10 简单选择排序 250 范例1-86 简单选择排序 250 ∷相关函数:SelectSort函数 1.5.11 箱子排序 252 范例1-87 箱子排序 252 ∷相关函数:sort函数 1.5.12 树型选择排序 254 范例1-88 树型选择排序 254 ∷相关函数:TreeSort函数 1.5.13 堆排序 256 范例1-89 堆排序 256 ∷相关函数:HeapSort函数 1.5.14 归并排序 258 范例1-90 归并排序 258 ∷相关函数:MergeSort函数 1.5.15 多路平衡归并排序 260 范例1-91 多路平衡归并排序 260 ∷相关函数:K_Merge函数 1.5.16 置换—选择排序 265 范例1-92 置换—选择排序 265 ∷相关函数:Replace_Selection函数 1.5.17 文件的归并 269 范例1-93 文件的归并 269 ∷相关函数:K_Merge函数 1.6 查找 272 1.6.1 顺序表的查找 273 范例1-94 顺序表的查找 273 ∷相关函数:Search_Seq函数 1.6.2 静态树表的查找 276 范例1-95 静态树表的查找 276 ∷相关函数:Search_SOSTree函数 1.6.3 二叉排序树的基本操作 280 范例1-96 二叉排序树的基本操作 280 ∷相关函数:InsertBST函数 1.6.4 平衡二叉树的基本操作 285 范例1-97 平衡二叉树的基本操作 285 ∷相关函数:SearchBST函数 1.6.5 B树的基本操作 290 范例1-98 B树的基本操作 290 ∷相关函数:SearchBTree函数 1.6.6 按关键字符串的遍历双链键树 295 范例1-99 按关键字符串遍历双链键树 295 ∷相关函数:SearchDLTree函数 1.6.7 按关键字符串的遍历Trie树 301 范例1-100 按关键字符串遍历Trie树 301 ∷相关函数:SearchTrie函数 1.6.8 哈希表的基本操作 306 范例1-101 哈希表的基本操作 306 ∷相关函数:SearchHash函数 1.7 图 311 1.7.1 图的邻接矩阵存储表示 311 范例1-102 图的邻接矩阵存储表示 ∷相关函数:CreateFAG函数 CreateDG函数 1.7.2 图的邻接表存储表示 324 范例1-103 图的邻接表存储表示 324 ∷相关函数:CreateFAG函数 1.7.3 有向图的十字链表存储表示 335 范例1-104 有向图的十字链表存储表示 335 ∷相关函数:CreateDG函数 1.7.4 无向图的邻接多重表存储表示 344 范例1-105 无向图的邻接多重表存储表示 344 ∷相关函数:CreateGraph函数 1.7.5 最小生成树 355 范例1-106 最小生成树 355 ∷相关函数:MiniSpanTree_PRIM函数 1.7.6 关节点和重连通分量 359 范例1-107 关节点和重连通分量 359 ∷相关函数:FindArticul函数 1.7.7 拓扑排序 366 范例1-108 拓扑排序 366 ∷相关函数:TopologicalSort函数 1.7.8 关键路径 374 范例1-109 关键路径 374 ∷相关函数:CriticalPath函数 1.7.9 最短路径 383 范例1-110 最短路径 383 ∷相关函数:ShortestPath_DIJ函数 1.7.10 每一对顶点之间的最短路径 387 范例1-111 每一对顶点之间的最短路径 387 ∷相关函数:ShortestPath_FLOYD函数

2015-03-14

java list remove方法

发表于 2017-11-27 最后回复 2019-10-23

shell脚本中变量问题

发表于 2019-02-12 最后回复 2019-02-12

二叉树的遍历

发表于 2016-07-11 最后回复 2016-07-11

空空如也

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

TA关注的人 TA的粉丝

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