算法
文章平均质量分 78
七秒钟记忆-leon
不要在大多数人与你做着不同的事情的时候怀疑自己的选择~~~
展开
-
栈的数组实现(动态调整数组大小) JAVA版本
每项操作的用时都与集合大小无关空间需求总是不超过集合大小乘以一个常数 public class MyStack implements Iterable{ private T[] items = (T[]) new Object[1]; //栈元素 private int N = 0;//元素数量 public boolean isEmpty(){ return N == 0;原创 2015-06-09 16:16:51 · 469 阅读 · 0 评论 -
下压堆栈的链表实现 java版本
public class LinkedStack { private class Node{// 定义节点的嵌套类 T item; Node next; } private Node first;// 栈顶 private int N;// 元素数量 public boolean isEmpty(){ return first == null; } public原创 2015-06-09 17:36:40 · 375 阅读 · 0 评论 -
队列实现 java版本
public class Queue implements Iterable{ private class Node{//定义节点类 T item; Node nextNode; } private Node firstNode; private Node lastNode; private int N; public boolean isEmpty(){ return原创 2015-06-09 19:16:11 · 306 阅读 · 0 评论 -
快速排序 java实现
public class QuickSort { public static void sort(int[] a , int low , int high){ if(low >= high) return ; int j = partitiion(a, low, high); sort(a, low, j - 1); sort(a, j + 1 , high); }原创 2015-06-11 20:48:16 · 342 阅读 · 0 评论 -
堆排序 java实现
//堆元素存储在数组中 ,用最大堆排序,数组从0开始存储 public class HeapSort { public void sort(int[] a){ //构建最大堆 for(int i = a.length/2 ; i >= 0 ; i--){ processDown(a, i, a.length); } //把根节点与数组末尾节点互换,即把最大节点存原创 2015-07-04 21:53:09 · 400 阅读 · 0 评论 -
由二叉树前序和中序遍历生成二叉树
由二叉树前序和中序遍历生成二叉树自己用java实现的,功能没问题,效率可能不是很好基本思想就是根据前序第一个节点即是根节点,然后在中序中找到根节点位置,则中序的根节点左边就是根节点的左子树的中序序列,右边是根节点的右子树中序序列;根据左子树的节点个数再在前序中确定左子树的前序序列和右子树的前序序列,最后递归调用左右子树序列 //二叉树定义 class Btree { int value;原创 2015-08-06 11:09:40 · 531 阅读 · 0 评论 -
二叉树遍历的非递归实现 java版本
前序非递归遍历基本思想: 首先从访问节点,访问完后将节点入栈,如果节点有左孩子,则变量指向左孩子重复以上顺序当左孩子为空时,则出栈,获得栈顶元素的右孩子(所有入栈的元素及其左孩子元素都是被访问过的),执行1-3步骤代码: //二叉树定义 class Btree { int value; Btree leftBtree; Btree rightBtree; } //前序遍历原创 2015-08-06 11:53:10 · 532 阅读 · 0 评论