Java数据结构的实现
文章目录
- 一、Java数据结构
- 二、数据结构之数组和链表(Java语言描述)
- 1、Java数组
- 1.初始化数组
- 2.直接赋值
- 3.可变数组
- 2、链表
- 1.节点定义
- 2.实例化节点
- 三、数据结构之树和图(Java语言描述)
- 1、树和图
- 2、树
- 1.树的节点创建
- 2.创建树
- 3、图
- 1.邻接矩阵创建图
- 2.邻接表创建图
- 四、数据结构之散列表和堆(Java语言描述)
- 1、散列表(hash表)和堆
- 2、散列表(hash表)
- 3、堆
- 五、数据结构之栈与队列(Java语言描述)
- 1、栈和队列的基本概念
- 2、栈
- 1.栈的定义
- 2.入栈
- 3.出栈
- 3、链栈
- 1.创建链栈
- 2.链表入栈
- 3.链表出栈
- 4、队列
- 1.队列的创建
- 2.入队和出队
一、Java数据结构
众所周知,数据结构是算法的基础。从事程序设计工作的人来说,我们在日常编程的编程过程中,我们都会有意无意的接触到一些数据结构和算法的知识。为了能够更好的对于程序进行优化,所以数据结构相关的知识必须有所了解。学完了Java面向对象的基础知识后,我们可以更深入的了解Java数据结构算法的基础知识,进而提高我们的编程思维和解决问题的思路。接下来,我将介绍Java数据结构相关的知识。
二、数据结构之数组和链表(Java语言描述)
1、Java数组
Java数据是我们入门学的第一个最基本的数据结构,这是一个常用的线性储存结构。
1.初始化数组
数组类型[] 数组名=new 数组类型[储存维度];
2.直接赋值
数组类型[] 数组名={初始化量1,初始化量2};
3.可变数组
List<Interger> array=new ArrayList<>();//初始化
array.add(value);//数组元素添加
2、链表
1.节点定义
class ListNode{int val; //节点值ListNode next; //后续节点使用ListNode(int x){val=x;}
}
2.实例化节点
ListNode n1=ListNode(value1);
ListNode n2=ListNode(value2);
ListNode n3=ListNode(value3);
n1.next=n2;
n2.next=n3;
三、数据结构之树和图(Java语言描述)
1、树和图
众所周知,数据结构中的数据关系除了一对一的关系外,还存在着其他的关系,树和图就为了描述这种数据关系而存在的。其中,树主要描述数据之间一对多的关系。而图主要描述数据间的多对多的关系。树和图的数据结构在实际运用中具有很重要的地位,下面我将详细介绍树和图用Java语言怎么描述出来的。
2、树
1.树的节点创建
class TreeNode{int val;//结点值TreeNode left;//左节点TreeNode right;//右节点TreeNode(int x){val=x;}
}
2.创建树
TreeNode n1=new TreeNode(value1);
TreeNode n2=new TreeNode(value2);
TreeNode n3=new TreeNode(value3);
n1.left=n2;
n1.right=n3;
3、图
1.邻接矩阵创建图
int vertices={value1,value2,value3,value4,value5};//创建节点
int[][] edges={{0,1,1,1,1}, //创建节点之间的连接状态{1,0,0,1,0},{1,0,0,0,1},{1,1,0,0,1},{1,0,1,1,0}}
2.邻接表创建图
int vertices={value1,value2,value3,value4,value5};//创建节点
List<List<Integer>> edges=new ArrayList<>();
List<Integer>edge_1=New ArrayList<>(ArrayList.asList(value2,value3));
edges.add(edge_1);
四、数据结构之散列表和堆(Java语言描述)
1、散列表(hash表)和堆
这两个数据结构在计算机底层内部应用十分广泛,Java的虚拟机就是利用堆来存储数据的。因此这两个数据结构依旧很重要,下面我将用Java语言来描述这两个数据结构。
2、散列表(hash表)
Map<String,Interge> dic=new HashMap<>();//哈希表的创建
dic.put(key,value);//数据存储
dic.get(key,value);//数据取出
3、堆
queue<Integer> heap=new priorityQueue<>(); //堆元素节点创建
heap.add();//堆的元素节点添加
heap.poll();//堆的元素节点移除
五、数据结构之栈与队列(Java语言描述)
1、栈和队列的基本概念
栈和队列都是特殊的线性数据结构,两者的不同在于其数据存取方式的不同。栈的存取方式是先进后出,然而队列的数据存取方式是先进先出。两者在数据结构与算法的应用中有着不可替代的作用。下面我将介绍怎么使用Java语言描述栈和队列的原理。
2、栈
1.栈的定义
stack<Integer> stack= new stack <>();
2.入栈
stack.push()
3.出栈
stack.pop();
3、链栈
1.创建链栈
LinkedList<Integer> stack=new LinkList<>();
2.链表入栈
stack。addlast(元素);
3.链表出栈
stack.removelast();
4、队列
1.队列的创建
Queue<Integer> queue=new LinkList<>();
2.入队和出队
queue.offer();//入队
queue.poll();//出队
Java数据结构的实现相关推荐
- java队列_如何彻底搞懂 Java 数据结构?CSDN 博文精选
作者 | 张振华.Jack 责编 | 郭芮 出品 | CSDN 博客 本文和大家一起来重温<Java数据结构>经典之作. Java数据结构 要理解Java数据结构,必须能清楚何为数据结构? ...
- Java 数据结构与算法系列之冒泡排序
一.前言 相信大部分同学都已经学过数据结构与算法这门课了,并且我们可能都会发现一个现象就是我们所学过的数据结构与算法类的书籍基本都是使用 C 语言来写的,好像没见过使用 Java 写的数据结构与算法. ...
- Java数据结构与算法——树(基本概念,很重要)
声明:码字不易,转载请注明出处,欢迎文章下方讨论交流. 有网友私信我,期待我的下一篇数据结构.非常荣幸文章被认可,也非常感谢你们的监督. 前言:Java数据结构与算法专题会不定时更新,欢迎各位读者监督 ...
- java数据结构 队列_Java数据结构与算法[原创]——队列
声明:码字不易,转载请注明出处,欢迎文章下方讨论交流. 前言:Java数据结构与算法专题会不定时更新,欢迎各位读者监督.本文介绍数据结构中的队列(queue)的概念.存储结构.队列的特点,文末给出ja ...
- 数据结构 python的书推荐-java数据结构书一般推荐看什么好?
想要学习java的各种数据结构,一本良好的书籍会让你受益匪浅,本文就来推荐一些学习java数据结构适合看的书. 一.入门推荐 因为是入门,所以我们先不要求实现,阅读一些通过图片,打比方等通俗易懂的方法 ...
- Java数据结构与算法——插入排序
声明:码字不易,转载请注明出处,欢迎文章下方讨论交流. 前言:Java数据结构与算法专题会不定时更新,欢迎各位读者监督.本篇文章介绍排序算法中插入排序算法,包括插入排序的思路,适用场景,性能分析,ja ...
- Java数据结构和算法(六)——前缀、中缀、后缀表达式
前面我们介绍了三种数据结构,第一种数组主要用作数据存储,但是后面的两种栈和队列我们说主要作为程序功能实现的辅助工具,其中在介绍栈时我们知道栈可以用来做单词逆序,匹配关键字符等等,那它还有别的什么功能吗 ...
- Java数据结构和算法(一)——简介
本系列博客我们将学习数据结构和算法,为什么要学习数据结构和算法,这里我举个简单的例子. 编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱.一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数 ...
- java数据结构实验一顺序表,java数据结构实验代码之升序顺序表
java数据结构实验代码之升序顺序表 数据结构实验报告 学院:管理学院 班级:13电子商务(1)班 姓名:廖秋君 学号:3213004779 2014年 10月 23 日 目录 一.需求分析----- ...
- 20180826(01)-Java数据结构
Java 数据结构 Java工具包提供了强大的数据结构.在Java中的数据结构主要包括以下几种接口和类: 枚举 (Enumeration) 位集合(BitSet) 向量 (Vector) 栈 (Sta ...
最新文章
- Linux系统与我之间的故事
- python笔记基础-python学习笔记(一)python简介和基础
- 华为linux版笔记本安装win7,华为MateBook X Pro笔记本怎样安装win7系统
- STM32之串口例程
- 大数据学习笔记32:Hive - 下载、安装与配置
- 使用回收站主键名、索引名问题
- 记录学习antd design pro dva的过程,主要记错, 多图预警,如有理解偏差,忘指出,多谢!...
- 22 个免费高质量的电商网站模版
- 信号的同调性(Coherence)分析及MATLAB实例
- 如何下载网吧电影服务器上的电影
- 【转载】网易博客完美支持Word写日志
- 68个Python内置函数详解,进阶必备
- JAVA网课|字符串
- RealView MDK集成开发环境的使用
- 保研经验分享:痛并快乐的成长经历
- ssm码农论坛毕业设计源码231126
- android 开发中遇到的错误 app:mergeDebugResources
- android高德地图绘制多边形_android 高德地图画多边形,已知中心点 宽高画矩形 ,实际距离 千米转地图坐标距离...
- 谣传“郑州警察被壮汉秒残” 涉事者被拘10日
- 第一章_Android入门
热门文章
- Opencv-Python处理车道线检测
- 【综述】各类人工智能大数据相关比赛
- 注塑行业MES系统解决方案,打造数字化智能工厂 先达智控
- 从AI到BI,全面解读人工智能与商业智能
- Domino开发使用JAVA,起点R3使用JAVA获取Domino数据(上篇)
- gen9 ws460c 惠普_Drivers Software - HPE Support Center.
- (2)ARC之@property使用 转自易飞扬 内容有改动
- Download the android source from china mirrors
- 查找(一)史上最简单清晰的红黑树讲解 http://blog.csdn.net/yang_yulei/article/details/26066409
- 服务器停机维护更新,问道手游IOS22日服务器停机维护更新公告