链表(单向、双向、单向循环、双向循环)

前段时间学习了数据结构的部分知识,然后到上个星期别人问相关问题的饿时候发现自己对链表的知识都有些模糊了,主要还是有些细节的地方记不太清楚,所以就萌生了写这篇博客的想法,一是要重新复习一下链表的相关知识,二呢用C++重新写一遍,熟悉C++语言。之前用C语言实现链表操作的时候也写过几篇博客,但是重点都...

2017-11-16 17:29:43

阅读数:172

评论数:0

最小生成树-普里姆算法-java实现

最小生成树:是将图中的顶点全部连通,但是其权值之和要求最小 /** * 最小生成树:两种方式,普里姆算法和克鲁斯卡尔算法 * @author timmy1 * */public class MinSpanTree { int[][] matrix;// 矩阵 int MAX_...

2017-10-31 20:06:46

阅读数:80

评论数:0

Java实现图的深度优先遍历和广度优先遍历

private int vertexSize;//顶点数量 public int getVertexSize() { return vertexSize; } public void setVertexSize(int vertexSize) { ...

2017-10-29 14:22:27

阅读数:517

评论数:0

Java数据结构----图的基础知识

1、概念 图: 是一种复杂的非线性数据结构。 图的二元组定义:   图 G 由两个集合 V 和 E 组成,记为:   G=(V, E)  其中: V 是顶点的有穷非空集合,   E 是 V 中顶点偶对(称为边)的有穷集。   通常,也将图 G 的顶点集和边集分别记为 V(G) ...

2017-10-24 17:08:25

阅读数:133

评论数:0

JAVA实现图的结构

/ ///** // * 图的数据结构:采用邻接矩阵的存储方式来表示图中顶点之间的关系。实现有:求图的 // * // * @author timmy1 使用二维数组来存储图中顶点的关系:数字为0表示自己,最大值表示两个顶点之间不联通, -》求顶点的入度和出度 // ...

2017-10-24 16:41:43

阅读数:810

评论数:0

分治法实现棋盘覆盖

问题描述:用图所示的4种不同形状的L型骨牌覆盖给定棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。 思路:应用分治法 分治的技巧在于如何划分棋盘,使划分后的子棋盘的大小相同,并且每个子棋盘均包含一个特殊方格,从而将原问题分解为规模较小的棋盘覆盖问题。k>0...

2017-10-24 16:08:19

阅读数:91

评论数:0

分治算法-球队循环赛日程安排-java实现

public void scheduleTable(int[][] table,int n){ if ( n==1){ table[0][0]=0; }else { //填充左上区域矩阵 int m =n/2 ; s...

2017-10-23 20:34:28

阅读数:134

评论数:0

贪心算法

贪心算法基本原理 贪心算法的核心就是贪,就是总是做出当前看来最优的选择,因此可知,贪心算法不从整体去考虑,它做出的选择也是局部最优选择,从而达到全局优化选择。虽然贪心算法不一定能得到最优解,但是对很多问题,它是能够得到整体最优解的,因此贪心算法是否能到最优解,需要严格证明。 贪心算法产生有化解...

2017-10-23 10:39:32

阅读数:79

评论数:0

递归求和、阶乘、最大公约数 以及汉诺塔

public void FromJava() { // // int i = 1; // for(i=1;i<=80;i++){ // System.out.println("兔子第"+i+"个月的总数为:&qu...

2017-10-22 14:51:27

阅读数:99

评论数:0

约瑟夫环生者(JAVA)

内容要求: 据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下...

2017-10-19 17:14:54

阅读数:64

评论数:0

Java实现8皇后算法

八皇后是一道很具典型性的题目。它的基本要求是这样的:在一个8*8的矩阵上面放置8个物体,一个矩阵点只允许放置一个物体,任意两个点不能在一行上,也不能在一列上,不能在一条左斜线上,当然也不能在一条右斜线上。     初看到这道题目,大家的第一印象是遍历,但是经过实践之后发现遍历其实不好写,而且复杂...

2017-10-19 11:47:30

阅读数:306

评论数:0

Java动态规划 实现最长公共子序列长度

动态规划法 经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题。简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加。 为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子问题的解存于...

2017-10-18 16:06:02

阅读数:186

评论数:0

Java实现二分查找

二分查找又称折半查找,它是一种效率较高的查找方法。    【二分查找要求】:1.必须采用顺序存储结构 2.必须按关键字大小有序排列。 private static final int[] NUMBERS = {49, 38, 65, 97, 76, 13}; public s...

2017-10-15 20:46:55

阅读数:61

评论数:0

哈夫曼

在一般的数据结构的书中,树的那章后面,著者一般都会介绍一下哈夫曼(HUFFMAN) 树和哈夫曼编码。哈夫曼编码是哈夫曼树的一个应用。哈夫曼编码应用广泛,如 JPEG中就应用了哈夫曼编码。 首先介绍什么是哈夫曼树。哈夫曼树又称最优二叉树, 是一种带权路径长度最短的二叉树。所谓树的带...

2017-10-15 17:09:05

阅读数:172

评论数:0

树与二叉树

树的基本概念:               树的概念是学习树的关键所在,掌握了树的基本概念,学会树与二叉树,so easy。我通过一棵树来了解树的基本概念,如下图                                                           ...

2017-10-15 16:57:21

阅读数:75

评论数:0

Stack介绍以及设计一个有getMin 功能的栈

Stack是一个后进先出(last in first out,LIFO)的堆栈,在Vector类的基础上扩展5个方法而来 Deque(双端队列)比起Stack具有更好的完整性和一致性,应该被优先使用 [plain] view plain copy E push(E item...

2017-08-30 10:01:39

阅读数:136

评论数:0

基数排序(未)

public void sort(int [] array){ int max = 0;//获取最大值 for(int i = 0;i if(max max = array[i]; } } int times = 0;//获取最大值位数 while(max>0){ max ...

2016-10-27 18:34:01

阅读数:189

评论数:0

合并排序(未)

public class MergeSort { public void mergeSort(int[] a,int left,int right){ if(left int middle = (left+right)/2; mergeSort(a, left, middle); mergeSor...

2016-10-27 18:23:46

阅读数:165

评论数:0

增量排序(未)

public class HeerSort { public static void main(String[] args){ int [] a = {49,38,44,2,0,7,28,1,-9,7,2,3,8,20,14,88,56,-8,-33,5,23,12,99,76}; int ...

2016-10-27 18:21:40

阅读数:265

评论数:0

堆排序(未)

public class HeapSort { //堆排序 public static void main(String[] args){ int[] array = {39,44,1,0,8,66,23,67,9,15,100,70,22,3,6,54}; HeapSort heapSort =...

2016-10-27 18:18:46

阅读数:153

评论数:0

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