java 数据结构
文章平均质量分 71
chenweishaoxing
这个作者很懒,什么都没留下…
展开
-
二叉树怎样遍历
关于二叉树的遍历dzsc.com文章出处: 发布时间: 2009/09/10 | 2667 次阅读 | 0次推荐 | 0条留言 Samtec连接器 完整的信号来源 开关,电源限时折扣最低45折 每天新产品 时刻新体验 ARM Cortex-M3内核微控制器 最新电子元器件资料免费下载 完整的15A开...原创 2011-09-21 09:50:02 · 127 阅读 · 0 评论 -
哈希表的一些概念 代码(自己写)
首先,我们要明确一点是hash表是基于数组,这个数组是我们输入的数据项的数组比如:我创建了一个数据项package endual;public class DataItem { private int iData ; //key值相当于这个数据项的ID ,这个相当于People信息的身份证号码 private Object object ; //这个数据相当于人们...原创 2012-02-05 18:44:58 · 164 阅读 · 0 评论 -
堆 (自己写)
堆也是基于数组的哦,所以在创建的时候,请先要考虑好数组的大小了堆的介绍 堆是一种树,由他实现的优先级队列的插入和删除的时间复杂度都是N尽管这样的删除的时间变慢了一些,但是插入的时间快了很多了。当速度非常重要的时候,且有很多插入操作时,可以选择堆来实现优先级队列这里的堆是一种特殊的二叉树,是完全二叉树,不要和java和C++等程序语言里的堆混合在一起,后者指的是程序员用...原创 2012-02-06 13:32:28 · 121 阅读 · 0 评论 -
java 图 代码自己写
图的建立也是基于数组的,但是遍历的话是基于链表或者是矩阵的 在计算机程序中,图是最常用的结构之一。一般来说,用图来帮助解决的问题类型与其他的数据结构有很大的差别。如果处理一般的数据存储问题,可以用不到图,但是对一些特别的问题,用图来解决是必不可少的。 对图的讨论有两种,一种是带权的,还有一种是不带权的。 不带权的图 图是一种与树...原创 2012-02-07 13:07:11 · 269 阅读 · 0 评论 -
java 图的最小生成树问题 (代码自己写)
最小生成树是基于无无向图,并且是没有权值的图的。它的实现可以用深度遍历还有广度遍历实现本代码是基于图的,所以和前面的 java 图 的那个代码是一样的 不同是加入了 生成最小生成图的代码 老习惯理论:/** * 详细代码后面会给出来的,现在只是大概的只是代码怎么写,怎么个思路package endual;public class Shor...原创 2012-02-07 13:51:26 · 154 阅读 · 0 评论 -
有向无环图 拓扑排序
package endual.tuopupaixu;/** * 拓扑排序 * * 拓扑排序的思想虽然不寻常,但是还是很简单的 * 有两个步骤要去考虑 * 步骤1 * 找到一个没有后续的顶点(这是从有向图的角度是做了,而不能用最简单的那种图去考虑问题了) * 顶点的后续也是一些顶点,他们是该节点的直接“下游” 也就是说这些节点与他们由一条...原创 2012-02-07 15:53:57 · 632 阅读 · 0 评论 -
数据结构学习的在线好网址
http://sjjg.js.zwu.edu.cn/SFXX/index.html原创 2012-02-07 16:20:29 · 297 阅读 · 0 评论 -
带权图的最小生成树 (代码自己写)
1.大理论的一些资料 带权图带权是说的是在图的连接边是有长度。我们来模拟这个环境: 中国的20个城市,每个城市好比一个图的顶点,火车在地面上开,有火车的轨道将20个城市连接在一起了而火车的轨道好比是边,而轨道连接各个城市之间的的有长度的,那么这就形成了一个图----有火车的轨道网络,这个例子说的就是带权的图了。 当把权值当做边的特性的时候,一些有趣的并且复...原创 2012-02-08 16:02:38 · 1201 阅读 · 0 评论 -
递归思想 汉诺塔的问题
package endual;public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int n = 2; //一共有多少个 char a = 'A' ; /...原创 2012-02-09 10:46:18 · 54 阅读 · 0 评论 -
带权图 最短路径 代码自己写
最短路径问题 可能在带权图中,最常用遇到的问题就是,寻找两个点间的最短路径问题。这个问题的解决方法可以应用在现实生活中很多情况,从印刷电路板到项目的调度都适合,但是它比前面见到过的问题更负责一些,所以首先还是来看一个真是世界的场景,它还是发生在前面的引入的那个虚拟的国家 铁路线。 这次我们来模拟的是铁路线而不是有线电路线了。然而,这个项目不像上一个...原创 2012-02-09 10:46:56 · 274 阅读 · 0 评论 -
红黑树的一些概念
普通的二叉树作为数据存储有重要的优势,可以快速的找到一个给定的关键字,数据项,并且可以快速的插入和删除数据项。其他的数据存储结构,数组有序数组链表在执行这些操作的时候却很满。 但是。遗憾的是二叉树搜索树有一个很麻烦的问题就是:如果树中插入的是随机数据,那么执行的效果很好。但是,如果插入的是有序的数据或者逆序数据,速度就变的特别慢。因为当插入的数据有序时,二叉树就是非平衡了,而...原创 2012-02-05 14:43:55 · 102 阅读 · 0 评论 -
二叉树代码
package endual;/** * 树的效率 * 树查找的效率是取决于这个节点是在哪个层数。它的时间复杂度是logN,更准确的说是底数为2的的logN*/public class Tree { private TreeNode root ; //根节点 private int nEitems ; //记录tree的个数 /**...原创 2012-02-05 09:51:05 · 80 阅读 · 0 评论 -
java 实现链表(自己写的)
今天用java写了下的链表, 还是有点糊涂的。这和C语言写的链表还是有点不太一样的。感觉C语言的结构清晰点的,可能是内存中保存的值是引用还是真的值有关系吧有两点要说明下的:1、Head --> Node --> Node --> Node --> Node 链表的head是不保存数据的,一般开辟内存然后在里面放null空对象。保存值从第一个Node开始的。C...原创 2012-02-03 11:03:56 · 457 阅读 · 0 评论 -
java递归的一个问题
据说比达格斯理论家,又称一群在必达格斯领导下工作的古希腊数学家,发现在数字序列1,3,6,10,15,21 中有奇怪的联系这个数列中第n项由第n-1项加n得到的。效率问题调用一个方法会有一定的额外开销。控制必须从这个调用的位子转移到这个方法的开始处。除次之外,传给这个方法的参数以及这个方法返回的地址都要黑压入到一个内部的栈中。为的是这个方法可以访问参数值。知道返回到哪里去。就这...原创 2012-02-03 13:56:03 · 103 阅读 · 0 评论 -
递归 字符串的全排列
package endual;public class AnagramApp { static int size ; static int count ; static char[] arrChar ; public static void main(String[] args) { String msgs = "abc" ; arrChar = m...原创 2012-02-03 15:29:06 · 196 阅读 · 0 评论 -
java 希尔排序算法(自己写)
希尔排序算法是对插入算法的应用吧,就是多次的使用了插入算法多排序的数组进行排序。 1.效率问题 希尔算法的效率到现在还没有理论上的正确答案,但是在实际的测试中的实际复杂度是 N^(3/2)--N^(7/6)之间。空间复杂度是1,它的辅助空间并没有因为数组的大小而改变。 2.插入算法的代码 为了清楚的和希尔排序进行比较,先来看下插入算法的排序 ...原创 2012-02-04 10:26:10 · 93 阅读 · 0 评论 -
快速排序算法(自己写)
快速排序算法的伪代码。package endual;public class QuickSortClass {/** public void recQuickSort(int left, int right) { if(right-left <= 0) { return ; }else { int p...原创 2012-02-04 12:58:03 · 196 阅读 · 0 评论 -
各类排序算法
隐藏▲查 · 论 · 编排序算法 理论计算复杂性理论 | 大O符号 | 全序关系 | 列表 | 稳定性 | 比较排序 交换排序法冒泡排序 | 鸡尾酒排序 | 奇偶排序 | 梳排序 | Gnome sort | 快速排序 选择排序法选择排序 | 堆排序...原创 2012-02-04 13:19:54 · 98 阅读 · 0 评论 -
桶排序(代码自己写)
简单来说,就是把数据分组,放在一个个的桶中,然后对每个桶里面的在进行排序。 例如要对大小为[1..1000]范围内的n个整数A[1..n]排序 可以把桶设为大小为10的范围,具体而言,设集合B[1]存储[1..10]的整数,集合B[2]存储 (10..20]的整数,……集合B[i]存储( (i-1)*10, i*10]的整数,i = 1,2,.....原创 2012-02-04 13:24:49 · 134 阅读 · 0 评论 -
java 二叉树
为什么要用二叉树 通常我们去实现数据结构有两种方式,一种是有序数组,还有一种是链表。在树中查找数据项的速度和在有序数组中查找一样快,并且插入数据项和删除数据项的速度也是一样快得的。 在有序数组中,插入删除的太慢,我们要插入一个数组,要将后面的数组先进行复制到其他地方。 二分查找法的速度是logN而在链表中,是查找太慢了,链表的插入和删除都是恨快得。它们只需要改变一些引用的...原创 2012-02-04 14:17:14 · 83 阅读 · 0 评论 -
两个正整数相加
import java.util.Scanner;import java.util.Stack;public class T { /** * @param args */ public static void main(String[] args) { Scanner cin = new Scanner(System.in); Stri...原创 2012-02-05 09:48:57 · 559 阅读 · 0 评论 -
java 归并排序 自己写
package endual.xier.writeagain;public class Darray { private long[] theArray ; private int nElems ; public Darray(int max) {//构造数组 this.theArray = new long[max] ; this.nEl...原创 2012-02-22 09:03:52 · 66 阅读 · 0 评论