java数据结构

java数据结构,第1张

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. 二叉树树是一种非线性的数据结构,相对于线性的数据结构(链表、数组)而言,树的平均运行时间更短(往往与树相关的排序时间复杂度都不会高),和现实中的树相比,编程的世界中的树一般是“倒”过来看,这样容易我们分析。树现实中的树是有很多很多个分支的,分支下又有很多很多个分支,如果在程序中实现这个会非常麻烦。因为本来树就是非线性的,而我们计算机的内存是线性存储的,太过复杂的话无法设计出来。因此,就有了简单又经常用的 -> 二叉树

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5707906.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存