
数据结构Java版
熊三@
大千世界,尽须体验
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
找到链表的倒数第n个结点(Java完整版)
方案1:(蛮力法,最不可取)从链表第一个结点开始,统计当前结点后面的结点个数,直到当前结点后面的结点个数等于n-1,结束算法方案2:使用散列表,新建一个散列表,表中的条目是<结点的位置,结点地址>。散列表中主键是结点在链表中的位置,值是该结点的地址。为了创建散列表,当遍历链表时,可以得到链表的长度。令M表示链表的长度,这样就将寻找倒数第n个结点的问题转换成了寻找正数第M-n-1个结...原创 2019-04-10 21:19:27 · 2563 阅读 · 0 评论 -
二叉树的创建及遍历(Java完整版)
int[] array = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; import java.util.LinkedList; import java.util.List; //把一个数组的值存入二叉树中,然后进行3种方式的遍历 public class BinaryTree { private int[] array = { 1, 2, ...原创 2019-04-20 13:50:06 · 994 阅读 · 1 评论 -
队列的2种实现方式(Java完整版)
1:基于简单循环数组实现队列public class Queue { private int [] queArray; private int maxSize; public int front; //存储队头元素的下标 public int rear; //存储队尾元素的下标 public static int len...原创 2019-04-19 19:39:56 · 1994 阅读 · 0 评论 -
堆(Java完整版)
堆是一颗完全二叉树,当 h>0 时,所有叶子节点都处于第 h 或 h-1 层 最小堆:节点值必须小于或等于其孩子节点的值 最大堆:节点值必须大于或等于其孩子节点的值...原创 2019-04-26 16:34:28 · 160 阅读 · 0 评论 -
二叉搜索树
import java.util.ArrayList;import java.util.LinkedList;import java.util.List;//树节点的封装类class Node{ int age; String name; Node leftChild; Node rightChild; public Node(int age...原创 2019-04-20 21:28:48 · 155 阅读 · 0 评论 -
栈的三种实现方式(Java完整版)
栈的主要操作void push(int data):将data(数据)插入栈 int pop():删除并返回最后一个插入栈的栈的辅助操作int top():返回最后一个插入栈的元素,但不删除 int size():返回存储在栈中的元素的个数 int isEmpty():判断栈中是否有元素 int isStackFull():判断栈中是否满元素实现栈抽象数据类型有多种实现方式。下面...原创 2019-04-08 21:12:31 · 2681 阅读 · 0 评论 -
合并两个有序单链表(Java完整版)
public class LinkedList { private int data; private LinkedList next; public LinkedList(int data){ this.data = data; this.next = null; } public int getData(){ return data; } public void s...原创 2019-04-11 12:05:31 · 2766 阅读 · 1 评论 -
冒泡排序(Java版)
public class Sort { private int[] array; public Sort(int[] a){ this.array = a; } public void display(){ for(int i = 0;i<array.length;i++){ System.out.print(array[i] + " ...原创 2019-04-07 21:31:46 · 177 阅读 · 0 评论 -
反转单链表(Java完整版)
1:迭代法public class Link1 { private int data; private Link1 next; public Link1(int data){ this.data = data; this.next = null; } public int getData(){ return data; } public void setData(i...原创 2019-04-11 11:05:58 · 390 阅读 · 0 评论 -
单链表(Java版)
//定义链表的结点类class Node{ public Node next;//下一个结点 public String data;//数据 public Node(String data){ this.data = data; } //显示结点 public void show(){ System.out.print(data + " "); }}//定义链表类及...原创 2019-04-07 16:46:52 · 150 阅读 · 0 评论 -
有序数组
public class OrderArray { private int[] array; private int length;//数组元素个数 //构造方法,传入数组的最大长度 public OrderArray(int max){ array = new int[max]; } //用二分查找定位某个元素,如果存在,返回其下标,不存在返回-1 public int fi...原创 2019-04-07 14:39:31 · 2980 阅读 · 0 评论 -
一遍记住Java的八大排序与代码实现
1.直接插入排序经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中。 将第一个数和第二个数排序,然后构成一个有序序列 将第三个数插入进去,构成一个新的有序序列。 对第四个数、第五个数……直到最后一个数,重复第二步。 如何写写成代码: 首先设定插入次数,即循环次数,for(int i=1;i<le...原创 2019-08-15 20:17:16 · 143 阅读 · 0 评论