
数据结构和算法
漠北鹰
与其临渊羡鱼,不如退而结网
展开
-
树的相关必备理论
树的必备概念以及相关术语1.树的概念及特征树(tree)是n(n>0)个结点的有限集合T,满足下面2个条件。树形结构是一类重要的非线性结构 (1)有且仅有一个特定的称为根(root)结点 (2)其余的结点可分为m(m>=0)个互不相交的有限集合,其中每个集合又是一棵树,并称其为根的子树(subtree)说明: 由于树不是线性结构,所以一般不用顺序存贮结构来描述,而用链式存贮结构来描述原创 2016-06-11 18:37:30 · 544 阅读 · 0 评论 -
二叉树的三种遍历方式java实现
二叉树的定义 二叉树(binary tree)是结点的有限集合,这个集合或者空,或者由一个根及两个互不相交的称为这个根的左子树或右子树构成. 从定义可以看出,二叉树包括:1.空树 2.只有一个根节点 3.只有左子树 4.只有右子树 5.左右子树都存在 有且仅有这5中表现形式 二叉树与一般...原创 2016-06-11 19:24:49 · 23291 阅读 · 9 评论 -
JAVA实现单链表
解释透明,代码通过亲测没毛病,可直接赋值粘贴运行^_^定义节点类:package 链表;public class Node { public int Element; public Node next; public Node(int Element,Node next){ this.Element=Element; this.next=n原创 2016-06-30 12:55:52 · 497 阅读 · 0 评论 -
java实现双向循环链表
模拟JDK中LinkedList的实现原理进行实现package 链表; //java实现循环链表 public class NewLinkedList<E>{ private int size; private Entry<E> header=new Entry(null,null,null); //定义节点类型 private class Entry<E> {原创 2016-07-01 12:13:11 · 782 阅读 · 0 评论 -
栈的动态数组实现
栈的特性:先进后出public class Stack<E> { private ArrayList<E> list = new ArrayList<E>(); //1、置空栈 public void empty() { list.empty(); } //2、判栈空 public boolean isEmpty() {原创 2016-10-02 12:55:32 · 1083 阅读 · 0 评论 -
利用两个队列实现一个栈
import java.util.ArrayDeque; import java.util.Scanner;/** * Created by acer on 2016/10/1. * 借助两个队列实现一个栈 * 思想:保证每次最后添加进来的元素成为队列最前面的元素即可 */ public class SolutionQueen { ArrayDeque<Integer> deque1原创 2016-10-02 15:47:55 · 409 阅读 · 0 评论 -
java实现快速排序(利用随机索引)
public void random_partion(int start, int length) {//核心代码(随机位置二分排序) if (length <= 1) return; Random rand = new Random(); int index = rand.nextInt(length) + start;原创 2016-10-02 21:05:26 · 949 阅读 · 0 评论