Java数据结构的实现

一、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();//出队
  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绝域时空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值