文章目录
一、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();//出队