数据结构(java)
文章平均质量分 55
昆昆欧粑粑
这个作者很懒,什么都没留下…
展开
-
数据结构(java)——栈和队列
今天的是一些数据结构中栈和队列的基本操作,算是作为用java描述数据结构的一个开始。之前学的都是用c语言描述,现在因为开始准备java方向的一些事情,所以打算开始过一遍java的数据结构。栈 栈的特点是,栈里面的元素是先进后出的形式。比如把1,2,3依次放进一个栈里面,取出之后的顺序就变成了3,2,1。栈在java里是用数组的形式表现,相当于是吧一个一个的数存进数组里,然后设置一个top表示当...原创 2018-04-15 16:48:41 · 1296 阅读 · 1 评论 -
java泛型冒泡排序
java使用泛型进行冒泡排序,使得一个算法通用于所有的一维数组 public class Bubble { public static void main(String[] args) { Integer[] arr = {5,6,4,3,2,1}; System.out.print("排序前:"); display(arr); ...原创 2018-12-18 20:58:38 · 1087 阅读 · 1 评论 -
搜索二叉树的删除
搜索二叉树删除比较麻烦,具体看代码里的解释:(删除带有两个子节点的节点需要用到中序后继节点) //先寻找中序后继节点,再进行删除 //寻找中序后继节点 public Node getHouJiNode(Node delNode) { //定义中序后继节点 Node houji = delNode; //定义中序后继的父节点 Nod...原创 2018-08-29 19:56:31 · 822 阅读 · 0 评论 -
java数据结构和他们的API
数据结构(java篇): 内容要求:这一部分需要自己先去学习一遍数据结构,然后自己写出来。掌握之后,再去查看api文档,最后学会如何使用api里的数据结构写算法。下面介绍的主要是每个数据结构与api的对应方式。此文为初级算法总结的子篇第三章——数据结构。 1、基础数组、线性表: (1)数组: Java数组的定义:int[] arr = new int[n]; ...原创 2018-07-29 16:39:22 · 1626 阅读 · 0 评论 -
java自写链表实现约瑟夫环
直接上代码: package 约瑟夫环; class node { public int data; public node next; public node(int data) { // TODO 自动生成的构造函数存根 this.data = data; this.next = null; } } class link { public node head; ...原创 2018-07-29 15:51:16 · 523 阅读 · 0 评论 -
非常简洁明了的基数排序——java实现
基数排序: 它的基本思想是:类似于创建一个二维的链表(第一层链表为0-9号),首先看每个数的个位,如果为0放入0号链表,为1放入1号链表……再对十位,百位排……。每躺排序后吧链表遍历一遍放入传入的arr中,经过几轮之后就排序完成。简单来说就是先对个位排序,在对十位排序,再对百位排序,以此类推。排序方法:比如我们要排序 arr{135,242,192,93,345,11,24,19}第一步:收...原创 2018-04-26 16:25:06 · 344 阅读 · 0 评论 -
数据结构(java)——二叉树的插入、遍历、删除、高度、叶子节点个数、判完全二叉树等操作
树树是一个神奇的数据结构……树的每个节点,都存在着多个指针,指向他的下一层,最后一层层下去通向叶子节点。树是一个由有限个节点组成的一个具有层次关系的集合。他看起来像一棵倒着的树。树里面的每个节点,会有一个父节点(上一层)和多个孩子节点(下一层)。当然还会有数据域。。。数据域可以是多个。。二叉树其实重点就是二叉树,二叉树指的是,每个节点最多有2个分支,称为左孩子和右孩子。所以,我们来看一下树的节点类...原创 2018-05-03 18:28:44 · 719 阅读 · 0 评论 -
haffman哈夫曼树——贪心算法(java)
接下来学习了哈夫曼树,总结一下哈夫曼树:了解Huffman算法之前,我们先介绍一下一颗树的构造价值:构造价值指的是,在一个树当中,如果有n层,那么每层的系数为1、2、3……n,然后吧每个叶子节点的构造价值乘以系数,总和就是这棵树的构造总价值,这也就叫做哈夫曼树的构造价值,我们看一个例子:对于这一棵树,我们计算一下他的哈夫曼构造价值:这里叶子节点一共有3个:6和13和17所以价值等于6*2 + 13...原创 2018-05-09 19:58:01 · 10809 阅读 · 4 评论 -
数据结构(java)——二叉树的构造(增删查遍历)
二叉树: 在java的api当中,有一些数据结构已经封装好了,比如链表linkedlist,栈stack,队列queue和优先队列PriorityQueue等等。 但是二叉树(BinaryTree)在api中没有显式的定义,需要我们自己定义那我们来看一下二叉树的定义和基本操作。节点类:public class Node { //long数据项 public long...原创 2018-05-08 23:20:02 · 323 阅读 · 0 评论 -
数据结构(java)——单链表、双端链表和双向链表
单链表 链表大家都很熟悉,链表是由若干个节点串起来的一个结构。类似于火车一样,拥有一个头结点(火车头)之后挂着一个个的节点,每个节点后面跟上另一个节点。每个节点分为两个域,一个数据域,用来存放这个节点的数据,一个是节点域,用来存放下一个节点。 所以对于单链表,用java实现我们首先创建节点类。Node类://联结点,相当于是车厢 public class Node { //数据域 ...原创 2018-04-17 20:56:25 · 1945 阅读 · 2 评论 -
java泛型快速排序
java使用泛型进行快速排序,使得一个算法通用于所有的一维数组 //快速排序 //划分成两个数组,通过递归给每一个子数组快速排序 //1.设定关键字,比关键字小的放在一边,大的放在另一边 //2.设置数组最右端为关键字 //3.递归实现快速排序 public class Quick { public static void main(String[] args) { I...原创 2018-12-18 21:00:16 · 312 阅读 · 0 评论