java数据结构学习笔记
java中数据结构的学习
xiaotai1234
计算机研究生在读,会使用java,javascript,php,c++,c,python等多门编程语言,懂算法,设计模式,jvm虚拟机,并发等。了解操作系统,计算机组成原理,计算机网络等基础底层知识。
展开
-
数据结构之程序员常用10种算法
数据结构之程序员常用10种算法一、二分查找算法(非递归)package com.atguigu.binarysearchnorecursion;public class BinarySearchNoRecur { public static void main(String[] args) { //测试 int[] arr = {1,3, 8, 10, 11, 67, 100}; int index = binarySearch(arr, 100); System.out.p原创 2020-11-24 08:47:56 · 765 阅读 · 1 评论 -
数据结构之图
数据结构之图一、基本介绍1.为什么要有图2.举例说明3.常用概念4.表示方式二、快速入门三、图的深度优先遍历四、图的广度优先遍历五、图的深度优先VS 广度优先package com.atguigu.graph;import java.util.ArrayList;import java.util.Arrays;import java.util.LinkedList;public class Graph { private ArrayList&原创 2020-11-23 10:31:39 · 237 阅读 · 0 评论 -
数据结构之树结构实际应用
数据结构之树结构实际应用一、堆排序1.基本介绍2.基本思想3.代码实现package com.atguigu.tree;import java.text.SimpleDateFormat;import java.util.Arrays;import java.util.Date;public class HeapSort { public static void main(String[] args) { //要求将数组进行升序排序 //int arr[] = {4原创 2020-11-23 10:12:08 · 3368 阅读 · 0 评论 -
数据结构之树
数据结构之树一、二叉树1.为什么需要树这种数据结构2.树的常用术语3.二叉树的概念二、二叉树遍历1.前中后序遍历2.二叉树查找节点3.二叉树删除节点package com.atguigu.tree;public class BinaryTreeDemo { public static void main(String[] args) { //先需要创建一颗二叉树 BinaryTree binaryTree = new BinaryTree(); //创原创 2020-10-17 08:53:22 · 497 阅读 · 0 评论 -
数据结构之哈希表
数据结构之哈希表package com.atguigu.hashtab;import java.util.Scanner;public class HashTabDemo { public static void main(String[] args) { //创建哈希表 HashTab hashTab = new HashTab(7); //写一个简单的菜单 String key = ""; Scanner scanner = new Scanner(S原创 2020-10-02 15:18:07 · 348 阅读 · 0 评论 -
数据结构之查找
数据结构之查找一、概述二、线性查找算法package com.atguigu.search;public class SeqSearch { public static void main(String[] args) { int arr[] = { 1, 9, 11, -1, 34, 89 };// 没有顺序的数组 int index = seqSearch(arr, -11); if(index == -1) { System.out.println("没有找到到")原创 2020-10-02 15:05:45 · 300 阅读 · 0 评论 -
数据结构之排序
数据结构之排序一、概述二、算法的时间复杂度三、常见的时间复杂度四、空间复杂度原创 2020-10-02 09:47:36 · 275 阅读 · 0 评论 -
数据结构之队列
数据结构之队列一、概述二、数组模拟队列package com.atguigu.queue;import java.util.Scanner;public class ArrayQueueDemo { public static void main(String[] args) { //测试一把 //创建一个队列 ArrayQueue queue = new ArrayQueue(3); char key = ' '; //接收用户输入 Scanner scan原创 2020-09-29 15:14:58 · 211 阅读 · 0 评论 -
数据结构之递归
数据结构之递归一、概述二、递归调用机制package com.atguigu.recursion;public class RecursionTest { public static void main(String[] args) { // TODO Auto-generated method stub //通过打印问题,回顾递归调用机制 test(4); //int res = factorial(3); //System.out.println("res原创 2020-09-29 14:53:18 · 304 阅读 · 0 评论 -
数据结构之栈
数据结构之栈一、概述二、栈的应用场景三、数组模拟栈package com.atguigu.stack;import java.util.Scanner;public class ArrayStackDemo { public static void main(String[] args) { //测试一下ArrayStack 是否正确 //先创建一个ArrayStack对象->表示栈 ArrayStack stack = new ArrayStack(4);原创 2020-09-29 09:38:20 · 300 阅读 · 0 评论 -
数据结构之链表
数据结构之链表一、链表介绍二、单链表介绍三、单链表应用实例package com.atguigu.linkedlist;import java.util.Stack;public class SingleLinkedListDemo { public static void main(String[] args) { //进行测试 //先创建节点 HeroNode hero1 = new HeroNode(1, "宋江", "及时雨"); HeroNode hero原创 2020-09-28 14:27:29 · 200 阅读 · 0 评论 -
稀疏数组
稀疏数组1.基本介绍当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。2.处理方法记录数组一共有几行几列,有多少个不同的值把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模3.举例说明4.二维数组转换成稀疏数组的思路遍历原始的二维数组,得到有效数据的个数sum根据sum就可以创建稀疏数组sparseArr int[sum+1]*3将二维数组的有效数据存入到稀疏数组中即可5.稀疏数组转二维数组的思路先读取稀疏数组的第一行,根据第一原创 2020-07-03 13:59:06 · 230 阅读 · 0 评论 -
线性结构和非线性结构
线性结构和非线性结构1.数据结构包括线性结构和非线性结构2.线性结构特点线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系线性结构有两种不同的存储结构,即顺序存储结构和链式存储结构。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息线性结构常见的有:数组、队列、链表和栈....原创 2020-06-15 20:12:58 · 295 阅读 · 0 评论