Ⅰ 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框架,数据结构
早在Java 2中之前,Java就提供了特设类。比如:向量(Vector)、栈(Stack)、字典(Dictionary)、哈希表(Hashtable)这些类(数据结构)用来让改卖存储和操作对象组。虽然这些类都非常有用,但是它们缺少一个核心的,统一的主题。集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。除了集合,该框架(framework)也定义了几个Map接口和类。Map里存储的是键/值对。尽管Map不是collections,但是它们完全整合在集合中。
所有的集合框架都包含如下内容:
接口:是代表集合的抽象数据类型。接口允许集合独立操纵其代表的细节。在面向对象的语言,接口通常形成一个层次。
实现(类):是集合接口的具体实现。从本质上讲,它们是可重复使用的数坦逗据结构。
算法:是实现集合接口的对象里的方法执行的一些有用的计算,例如:搜索和排序。这些算法被称为多态,那是因歼早为相同的方法可以在相似的接口上有着不同的实现。
集合框架的类和接口均在java.util包中。
Ⅲ Java 与 算法+数据结构 (100分)
说数据结构没用那是不可能的,但是要看你做什么了。
比如说你要血java,如果你想搞网站方面的话就简单了。
数据结构基本可以不用学,因为在web应用中,能用到的算法的地方少之又少,几乎就那么几个,想记不住都难。
但是如果你要往软件方面和手软方面发展的话就要学一部分了,但是这东西学是学不到的,能学到的只不过是思路,到时候自己发挥一下,想个算法就行了,算法这东西说难不难,难的东西有,但是没有你能用到的。
像你这样的情况我想说两点:
首先,说你想从事算法类的工作,那么选择什么样的语言都是一样的,算法肯定有,但是用到的都不多。刚进公司的时候一般是用不到算法的,因为算法都是别人想的,你也许有好的算法,但是别人不一定采用,但是你的算法基础不要丢掉,因为等你当了项目经理后这个是必不可少的。
其次,你要知道,在学计算机的路上,很少有人能学什么就做什么,大家都在被社会潮流推动,想要不掉队就只能随波逐流。因为毕竟我们都不想一辈子写代码。大家都是拿这东西做个跳板。
学java的路很长,但是也很有趣,希望你能学好。我想以你的算法基础,以后想成为专业精英不是问题。加油吧。
Ⅳ Java算法与数据结构代码
第1题:我给你搭建算法框架,具体需求,你只需往里面写Code即可:
publicclassProgram{
privatestaticfinalintN=6;
publicstaticvoidmain(String[]args){
Nodehead=newNode(-1,null);//定义头指针,带头结点的单链表
for(inti=0;i<N;i++){
Nodee=newNode(i+1,null);
tailInsert(head,e);
}
//Test
Nodep=head;
while(p.getNext()!=null){
p=p.getNext();
}
}
/**
*@paramhead实施尾插法算法的单链表头指针
*@parame所需的元素
*/
privatestaticvoidtailInsert(Nodehead,Nodee){
Nodep=head;
while(p.getNext()!=null){
p=p.getNext();//寻访单链表,直至到达单链表末尾
}
//实施尾插法
p.setNext(e);
}
}
classNode{
privateintid;//编号
privateNodenext;//单链表后继指针
privateStringvote;//选票
publicNode(){}
publicNode(intid,Nodenext){
super();
this.id=id;
this.next=next;
}
publicNode(intid,Nodenext,Stringvote){
super();
this.id=id;
this.next=next;
this.vote=vote;
}
@Override
publicStringtoString(){
return"Node[id="+id+",next="+next+"]";
}
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
publicNodegetNext(){
returnnext;
}
publicvoidsetNext(Nodenext){
this.next=next;
}
}
第2题:参看我以前的回答:https://..com/question/431512924412893084
算法思想已经写的清楚得不能在清楚了。转成Java就是小菜一碟。
Ⅳ 数据结构与问题求解(Java语言版)(第4版)图书简介
数据结构与算法是程序设计的基础,也是计算机科学的核心。本书为计算机科学专业的学生设计,首先介绍数据结构,随后深入高级数据结构和算法分析。它采用独特方法,将数据结构的使用与编程分离,利用Java集合类API,帮助学生理解面向对象编程,从用户角度分析需求,再以设计者角度编程。本书从抽象思维出发,采用Java语言,重点从使用转向实现,鼓励学生利用现有组件设计大型项目。软件开发原则,如封装和信息隐藏,是本书的核心。算法部分涵盖了运行时间分析、递归、排序和数据结构介绍。全书分为五部分,从基础知识到高级数据结构,内容严谨全面,结构合理,适合教师根据学生需求定制课程。本书为专业人员提供真实世界代码,也为初学者提供学习路径,既适合基础学习,也可作为进阶教材。每章末尾提供练习,鼓励学生亲手构建应用程序。
随着数据结构课程的发展,封装和信息隐藏等原则变得越来越重要。本书遵循这一趋势,深入浅出地介绍数据结构与算法。在算法部分,运行时间分析、递归、排序和基本数据结构是核心内容。全书分为五个章节,涵盖从基础知识到高级数据结构的全面内容。本书内容严谨、全面,结构组织合理,是计算机科学教育的理想教材。每章末的练习和项目构建任务,旨在加深学生对所学内容的理解,培养实际应用能力。本书不仅适用于数据结构初学者,也为专业人员提供了深入学习的资源。
数据结构与算法是计算机科学的基石。本书作为计算机科学专业的教材,以Java语言为基础,系统介绍了数据结构与算法的核心概念。通过分离数据结构的使用与编程,帮助学生掌握面向对象编程的精髓。本书强调从抽象思维出发,采用实践导向的教学方法,从需求分析到编程设计,逐步引导学生深入理解数据结构与算法。随着课程内容的发展,封装和信息隐藏等原则成为关注焦点。本书覆盖了运行时间分析、递归、排序和基本数据结构等关键算法,帮助学生构建坚实的理论基础。全书分为五个部分,从基础知识到高级数据结构,内容丰富全面,结构清晰合理,是计算机科学教育不可或缺的资源。每章末的练习和项目构建任务,旨在提升学生的学习效果和实际操作能力,使本书成为从初学者到专业人员的综合学习工具。