java数据结构与算法第二版
发布时间: 2025-10-15 08:44:01
第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数据结构算法初体验:计算1到100的和、10的阶乘
在面对不同问题时,解决方案并非唯一,比如从西安到北京,坐飞机、火车、汽车或步行,每种方式成本各异。同理,购买北京二环内四合院,一次性现金或银行按揭,选择不同,成本也不同。在编程中,解决相同问题时,使用不同算法,时间与内存消耗也会有差异。优秀算法的目标是高效完成任务,节省时间和空间。本文将通过实际案例,体验算法带来的不同。
需求一:计算1到100的和
解法一:直接累加1到100,涉及100次加法运算。
解法二:利用数学公式快速计算,一次加法、一次乘法、一次除法,共3次运算。
解法二明显更高效,运算次数减少,提高效率。
需求二:计算10的阶乘
解法一:递归实现,最多需要在栈内存开辟10块内存,执行10次。
解法二:使用循环,仅在栈内存开辟一次内存执行。
解法二在内存占用上更优,减少资源消耗。
本文简要介绍了算法在解决具体问题时的效率与内存消耗差异,通过实际案例对比,直观展示了不同算法的性能。更多数据结构与算法知识,请参考相关教程与课程资源。
热点内容