栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java数据结构

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java数据结构

1. 数组
数组是一种连续存储线性结构,元素类型相同,大小相等,数组是多维的,通过使用整型索引值来访问他们的元素,数组尺寸不能改变。数组的优点:存取速度快数组的缺点:事先必须知道数组的长度插入删除元素很慢空间通常是有限制的需要大块连续的内存块插入删除元素的效率很低2. 链表n个节点离散分配,彼此通过指针相连,每个节点只有一个前驱节点,每个节点只有一个后续节点,首节点没有前驱节点,尾节点没有后续节点。确定一个链表我们只需要头指针,通过头指针就可以把整个链表都能推出来。链表链表优点空间没有限制插入删除元素很快链表缺点存取速度很慢链表又细分了3类:单向链表一个节点指向下一个节点。双向链表一个节点有两个指针域。循环链表能通过任何一个节点找到其他所有的节点,将两种(双向/单向)链表的最后一个结点指向第一个结点从而实现循环。操作链表要时刻记住的是:节点中指针域指向的就是另一个节点!Java实现链表首先,我们定义一个类作为节点,节点需要有两个属性:数据域指针域public class Node { //数据域 public int data; //指针域,指向下一个节点 public Node next; public Node() { } public Node(int data) { this.data = data; } public Node(int data, Node next) { this.data = data; this.next = next; }}如上,一个链表节点对象就创建完成了,但理解链表本身并不难,但做相关的操作却并非易事,其算法包括且不限于:插入节点遍历查找清空销毁求长度排序删除节点去重创建链表&增加节点创建头节点Node head = new Node(value);然后找到尾节点进行插入 public static void traverseQueue(Queue queue) { // front的位置 int i = queue.front; while (i != queue.rear) { System.out.println(“队列值:” + queue.data[i]); //移动front i = (i + 1) % queue.data.length; } }}其他队列算法、循环队列、链表结构的队列实现略,读者朋友可自行练习。4. 二叉树树是一种非线性的数据结构,相对于线性的数据结构(链表、数组)而言,树的平均运行时间更短(往往与树相关的排序时间复杂度都不会高),和现实中的树相比,编程的世界中的树一般是“倒”过来看,这样容易我们分析。树现实中的树是有很多很多个分支的,分支下又有很多很多个分支,如果在程序中实现这个会非常麻烦。因为本来树就是非线性的,而我们计算机的内存是线性存储的,太过复杂的话无法设计出来。因此,就有了简单又经常用的 -> 二叉树

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/709364.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号