导航:首页 > 编程语言 > 数据结构图java

数据结构图java

发布时间:2024-10-12 19:39:07

java数据结构

首先明确,带权路径长度WPL最小的二叉树称作最优二叉树或哈夫曼树


那么比如说有4个节点,分别带权7,5,2,4如下ab两图

WPLa=7*2+5*2+2*2+4*2=36

WPLb=7*1+5*2+2*3+4*3=35

WPL=30*2+5*5*4+8*4*15*3+15*2+27*2=

不算了 口算不行... 看上式也知道你出现的概率越大,相当于基地越大,就给你乘个小的代价,必然是最优的。

⑵ java中有哪些数据结构

数据结构:
①数组 (Array)
在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数
据元素的集合称为数组。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组
元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指
针数组、结构数组等各种类别。
②栈 (Stack)
栈是只能在某一端插入和删除的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后
的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。
③队列 (Queue)
一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行
插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。
④链表 (Linked List)
一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:
一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。
⑤树 (Tree)
树是包含n(n>0)个结点的有穷集合K,且在K中定义了一个关系N,N满足 以下条件:
(1)有且仅有一个结点 k0,他对于关系N来说没有前驱,称K0为树的根结点。简称为根(root)
(2)除K0外,k中的每个结点,对于关系N来说有且仅有一个前驱。
(3)K中各结点,对关系N来说可以有m个后继(m>=0)。
⑥堆 (Heap)
在计算机科学中,堆是一种特殊的树形数据结构,每个结点都有一个值。通常我们所说的堆的数据结构,是指
二叉堆。堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。
⑦图 (Graph)
图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,
边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。
⑧散列表 (Hash)
若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称
这个对应关系f为散列函数(Hash function),按这个思想建立的表为散列表。
差不多我就知道这些了~

⑶ JAVA数据结构有哪几种

数组、栈 、队列、链表、树、堆 、图、散列表 。

1:数组是计算机编程语言上,对于“Array”的中文称呼,是用于储存多个相同类型数据的集合。

2:栈是限定仅在表尾进行插入和删除操作的线性表,栈者,存储货物或供旅客住宿的地方,可引申为仓库、中转站,引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法。

3:一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。

4:链表,一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。

5:哈希表,是根据关键码值而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。

⑷ java问题,链表跟顺序表到底有什么不同顺序表我知道,但是为什么说链表读取数据时要从头开始,

接楼上:准确的来说,你的问题是一个数据结构上的问题.

首先你要区分一下物理上的存储结构 与 逻辑上的数据结构

物理上的存储结构

逻辑上的数据结构

任何逻辑上的数据结构要在计算机上表示时,都必须根据自己的需求选择一种物理上的存储结构,然后根据逻辑数据结构的特性进行存储等等操作.

对于物理上的存储结构而言

这种特性是由于其物理实现决定的,目前暂时看没有办法改变.

回过头来看你的问题中两个关键的概念定义:

所以:

顺序表可以随即存取任一元素.而链表在绝大部分情况下都需要遍历查找.

⑸ 关于JAVA和数据结构的问题

编程语言大同小异,基本的逻辑操作都是一样的。比如与或,if,while这些。
但是java是面向对象,c是面向程序。我先学的c,后学的java,怎么都转不过来。现在习惯用java了,又不会用c了。
其实吧,没必要学c。如果你java学的好,那么一般的函数调用,参数传递和逻辑语句都应该会了吧。这样接触一门新的语言就不是啥难事了。编程重要的是思想,
个人觉得初学编程的时候最难的就是逻辑操作。还有参数和函数的调用。这些都会了之后,不用专门学某种编程,都触类旁通了(汇编除外)。
我学了c之后自学java,现在用的最好的是java,然后可以重构别人的asp,c#,不会写但是都可以看懂了,看多了就会写了

⑹ JAVA数据结构哪些

主要是3种接口:List Set Map
List:ArrayList,LinkedList:顺序表ArrayList,链表LinkedList,堆栈和队列可以使用LinkedList模拟
Set:HashSet没有重复记录的集合
Map:HashMap就是哈希表
二叉树可以利用递归的思想来模拟自行设计,从JDK5开始还提供了一个新的队列接口
图!!!没遇到过这样的情况,恐怕还是要自己模拟

阅读全文

与数据结构图java相关的资料

热点内容
java正则测试 浏览:493
如何查询软件服务器的ip 浏览:42
程序员学管理 浏览:34
android驱动开发权威指南pdf 浏览:39
9减7有几种算法 浏览:442
编程语言的就业前景 浏览:147
女程序员的常态 浏览:249
腾达如何设置代理服务器 浏览:285
意大利斜体pdf 浏览:734
lualinux编译 浏览:815
反向命令快捷键大全 浏览:885
编译数据流分析 浏览:28
天津压缩空气消音器原理 浏览:320
解压作业视频大全 浏览:456
双人解压合集游戏广告 浏览:597
盗墓笔记的特殊加密文字 浏览:899
网络设计师程序员薪酬水平 浏览:50
php程序员一般工资 浏览:718
java入门经典光盘 浏览:242
mac如何将文件夹放到个人收藏 浏览:149