数据结构
_calm
踏实下来,越努力越幸运!
展开
-
java中的链表
1.链表的结构在java中要实现一个链表,首先得定义链表的数据结构,也就是定义一个表示链表的类。如下:public class ListNode{ int val; ListNode next = null; ListNode(int val){ this.val = val; } }val表示这个链表结点中存储的数据,next 指向下一个链原创 2016-09-05 20:16:24 · 5398 阅读 · 1 评论 -
java实现9大排序算法
排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。一般来说外排序分为两个步骤:预处理和合并排序。首先,根据可用内存的大小,将外存上含有n个纪录的文件分成若干长度为t的子文件(或段);其次,利用内部排序的方法,对每个子文件的t个纪录进行内部排序。这些经过排序的子文件(段)通常称为顺串(run),顺串生成后即将其写入外存原创 2017-02-28 21:22:31 · 7725 阅读 · 3 评论 -
二叉树的非递归遍历
二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对来说要难一点。一.前序遍转载 2017-07-20 16:04:53 · 355 阅读 · 0 评论 -
Java实现动态表查找--二叉排序树
定义二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的键值均小于或等于它的根结点的键值; (2)若右子树不空,则右子树上所有结点的键值均大于或等于它的根结点的键值; (3)左、右子树也分别为二叉排序树;如下图:树的遍历方法:(1)层次遍历:按照树的层次进行遍历,如图树:8、3、10、1、6、14、4、7、原创 2017-03-04 15:01:07 · 1782 阅读 · 1 评论 -
Java搞定面试中的二叉树题目
package yao.demo; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Queue; import java.util.Stack; /**转载 2017-03-04 15:56:27 · 493 阅读 · 0 评论 -
静态表查找
静态查找表是指表结构不是在查询过程中动态生成的,它可分为 顺序查找(无序)、二分查找(有序)、分块查找(索引顺序查找)。1.顺序查找时间复杂度(O(n))public static int seqSearch(int[] array, int key){ for(int i = 0; i < array.length; i++){ if(array[i] == key) r原创 2017-03-03 10:19:03 · 701 阅读 · 0 评论 -
递归和迭代的区别
递归和迭代都是循环中的一种。简单地说,递归是重复调用函数自身实现循环。迭代是函数内某段代码实现循环,而迭代与普通循环的区别是:循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。递归循环中,遇到满足终止条件的情况时逐层返回来结束。迭代则使用计数器结束循环。当然很多情况都是多种循环混合采用,这要根据具体需求。使用递归原创 2016-10-07 14:03:41 · 18602 阅读 · 0 评论 -
用java构建二叉排序树,实现先序,中序和后序遍历
1.基础知识:先上图,举个例子:先选遍历的规则:根节点----左子树----右子树 结果为12-9-76-35-22-16-48-46-40-90中序遍历的规则:左子树----根节点----右子树 结果为9-12-16-22-35-40-46-48-76-90后序遍历的规则:左子树----右子树----根节点 结果为9-16原创 2016-09-07 23:00:13 · 2980 阅读 · 1 评论 -
Java实现二叉树的递归、非递归遍历
在计算机科学里,树的遍历是指通过一种方法按照一定的顺序访问一颗树的过程。对于二叉树,树的遍历通常有四种:先序遍历、中序遍历、后序遍历、广度优先遍历(Breadth Frist Search)(层次遍历)。(前三种亦统称深度优先遍历(Depth First Search))对于多叉树,树的遍历通常有两种:深度优先遍历、广度优先遍历。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍原创 2017-07-23 14:12:02 · 8797 阅读 · 1 评论