![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
娃娃救葫芦爷
学习编程ing
展开
-
数据结构-数组
1、数组 package chap01; public class TestArray { public static void main(String[] args) { long []arr=new long[] {2,3,4}; System.out.println(arr[0]); System.out.println(arr[1]); System.out.print...原创 2019-09-08 09:08:15 · 130 阅读 · 0 评论 -
数据结构-哈希表
定义:是一种数据结构,提供了快速的插入和查找操作,是基于数组实现的,将key作为数组的索引。 注:如果key是整数型,则直接作为索引,如果key是String类型 ,需要将key进行哈希化转换为整数型。 package com.chb.chap15; //员工信息表 public class Info { private int key; private String name; pub...原创 2019-10-04 10:13:24 · 85 阅读 · 0 评论 -
数据结构-红黑树
二叉树可以快速的插入、删除和查询随机数据,当数据是有序时,二叉树效率很低。 平衡树:插入随机数据 非平衡树:插入有序数据 红黑规则: 1.每个节点不是红色就是黑色 2.根总是黑色 3.如果节点是红色的,则它的子节点必须是黑色的 4.从根节点到每个叶子结点的路径,必须包含相同数目的黑色节点。 满足上面规则的树称为红黑树。比较复杂,知道概念即可 ...原创 2019-09-30 11:11:53 · 72 阅读 · 0 评论 -
数据结构-树
有序数组:查找快,但删除和插入慢。 链表:插入和删除快,但查询慢。 树:插入、删除、查询都很快。 二叉树:每个节点最多有两个节点的树。 二叉树的基本操作: (1)插入节点:比根节点小的放左边,大的放右边 (2)查找节点 (3)删除节点 比较复杂:在删除前需要查找要删除的节点,找到后,这要删除的节点有三种情况要考虑。 1.该节点是叶子节点,没有子节点 2.该节点有一个子节点 3.该节点有两个子节点 ...原创 2019-09-30 10:58:05 · 86 阅读 · 0 评论 -
数据结构-快速排序
思想:将一个数组划分为两个子数组,然后通过递归调用自身为每一个子数组进行快速排序来实现。 如何划分:设置关键字,将比关键字小的数据放在一组,将比关键字大的放在另外一组。 如何自动设置关键字:设置数组最右端的数据为关键字。 package com.chb.chap09; public class QuickSort { //划分数组 public static int part(long[]a...原创 2019-09-29 12:34:32 · 124 阅读 · 0 评论 -
数据结构-希尔排序
定义:希尔排序基于插入排序,冰天急啊了一些新的特性,从而大大的提高了插入排序的执行效率 插入排序的缺点:需要多次移动,加入一个很小的数据靠右端位置上,那么需将该数据排序到正确的位置上,则所有的中间数据都需要向右移动一位 希尔排序的优点:希尔排序通过加大插入排序中的元素之间的间隔,并对这些间隔的元素进行插入排序,从而使得数据可以大幅度的移动,当完成该间隔的排序后,希尔排序会减少数据的间隔再进行排序,...原创 2019-09-29 11:54:24 · 225 阅读 · 0 评论 -
数据结构-递归
定义:方法自己调用自己 package chap06; public class Digui { public static void main(String[] args) { test(10); } public static void test(int n) { if(n==0) { return; } System.out.println(n); test...原创 2019-09-09 10:02:24 · 73 阅读 · 0 评论 -
数据结构-双端链表和双向链表
1、双端链表 链表中保存着对最后一个节点的引用,这就是双端链表 package chap05; import chap04.Node; //双端链表 public class FirstLastLinkList { private Node first;//头结点 private Node last;//尾结点 FirstLastLinkList() { first=null...原创 2019-09-09 09:10:12 · 1303 阅读 · 0 评论 -
数据结构-链表
节点类 package chap04; //链节点,相当于车厢 public class Node { public long data;//数据域 public Node next;//节点域(指针域) public Node(long value) { this.data=value; } //显示方法 public void display() { System.ou...原创 2019-09-09 08:34:28 · 74 阅读 · 0 评论 -
数据结构-栈和队列
1、栈 package chap03; public class MyStack { //底层实现是一个数组 private long[]arr; //表示栈顶的下标 private int top; public MyStack() { arr=new long[10]; top=-1; } public MyStack(int maxsize) { arr=...原创 2019-09-08 10:10:30 · 96 阅读 · 0 评论 -
数据结构-简单排序
1、冒泡排序 package chap02; public class BubbleSort { public static void sort(long arr[]) { for (int i = 0; i < arr.length-1; i++) { for (int j =0; j <arr.length-1-i; j++) { if(arr[j]>a...原创 2019-09-08 09:30:27 · 108 阅读 · 0 评论 -
数据结构-图
图:表示多对多的关系需要用到图。 顶点:可用数据表示表示。 边:可以用邻接矩阵或邻接表表示。 图的定义: package com.chb.chap18; //顶点类 public class Vertex { private char label; public Vertex(char label) { super(); this.label = label; } } pa...原创 2019-10-04 11:08:43 · 126 阅读 · 0 评论