`
lovnet
  • 浏览: 6709670 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

java算法:基于应用ADT例子

 
阅读更多

java算法:基于应用ADT例子

例1:多项式ADT接口

Java代码 复制代码
  1. classPoly{
  2. Poly(int,int)
  3. doubleeval(double)
  4. voidadd(Poly)
  5. voidmult(Poly)
  6. publicStringtoString()
  7. }

例2:多项式客户程序

Java代码 复制代码
  1. publicclassBinomial{
  2. publicstaticvoidmain(Stringargs[]){
  3. intN=100;
  4. doublep=1.1;
  5. Polyy=newPoly(1,0);
  6. Polyt=newPoly(1,0);
  7. t.add(newPoly(1,1));
  8. for(inti=0;i<N;i++){
  9. y.mult(t);
  10. System.out.println(y+"");
  11. }
  12. System.out.println("value:"+y.eval(p));
  13. }
  14. }

例3:多项式ADT的数组实现

Java代码 复制代码
  1. classPoly{
  2. privateintn;
  3. privateint[]a;
  4. Poly(intc,intN){
  5. a=newint[N+1];
  6. n=N+1;
  7. a[N]=c;
  8. for(inti=0;i<N;i++){
  9. a[i]=0;
  10. }
  11. }
  12. doubleeval(doubled){
  13. doublet=0.0;
  14. for(inti=n-1;i>=0;i--){
  15. t=t*d+(double)a[i];
  16. }
  17. returnt;
  18. }
  19. voidadd(Polyp){
  20. int[]t=newint[(p.n>n)?p.n:n];
  21. for(inti=0;i<p.n;i++){
  22. t[i]=p.a[i];
  23. }
  24. for(intj=0;j<n;j++){
  25. t[j]+=a[j];
  26. }
  27. a=t;
  28. n=t.length;
  29. }
  30. voidmult(Polyp){
  31. int[]t=newint[p.n+n-1];
  32. for(inti=0;i<p.n;i++){
  33. for(intij=0;j<n;j++){
  34. t[i+j]+=p.a[i]*a[j];
  35. }
  36. }
  37. a=t;
  38. n=t.length;
  39. }
  40. publicStringtoString(){
  41. Strings="";
  42. for(inti=0;i<n;i++){
  43. s+=a[i]+"";
  44. }
  45. returns;
  46. }
  47. }

注意:Horner算法:a4x4 + a3x3 + a2x2 + a1x + a0 = (((a4x + a3)x + a2)x + a1)x + a0

分享到:
评论

相关推荐

    数据结构与算法分析_Java语言描述(第2版)]

    树4.1 预备知识4.1.1 树的实现4.1.2 树的遍历及应用4.2 二叉树4.2.1 实现4.2.2 例子:表达式树4.3 查找树ADT——二叉查找树4.3.1 contains方法4.3.2 findMin方法和findMax方法4.3.3 insert方法4.3.4 remove方法...

    数据结构与算法分析Java语言描述(第二版)

    树4.1 预备知识4.1.1 树的实现4.1.2 树的遍历及应用4.2 二叉树4.2.1 实现4.2.2 例子:表达式树4.3 查找树ADT——二叉查找树4.3.1 contains方法4.3.2 findMin方法和findMax方法4.3.3 insert方法4.3.4 remove方法...

    数据结构与算法分析_Java语言描述(第2版)

    4.2.2 例子:表达式树 4.3 查找树ADT——二叉查找树 4.3.1 contains方法 4.3.2 findMin方法和findMax方法 4.3.3 insert方法 4.3.4 remove方法 4.3.5 平均情况分析 4.4 AVL树 4.4.1 单旋转 4.4.2 双旋转 4.5 伸展树...

    数据结构与算法分析 Java语言描述第2版

    树4.1 预备知识4.1.1 树的实现4.1.2 树的遍历及应用4.2 二叉树4.2.1 实现4.2.2 例子:表达式树4.3 查找树ADT——二叉查找树4.3.1 contains方法4.3.2 findMin方法和findMax方法4.3.3 insert方法4.3.4 remove方法...

    数据结构与算法分析_Java_语言描述

    3.3.3 应用 3.4 队列ADT 3.4.1 队列模型 3.4.2 队列的数组实现 3.4.3 队列的应用 小结 练习 第4章 树 4.1 预备知识 4.1.1 树的实现 4.1.2 树的遍历及应用 4.2 二叉树 4.2.1 实现 4.2.2 一个例子:...

    数据结构与算法分析-Java语言描述(第2版)_2_2

    3.6.3 应用 3.7 队列adt 3.7.1 队列模型 3.7.2 队列的数组实现 3.7.3 队列的应用 小结 练习第4章 树 4.1 预备知识 4.1.1 树的实现 4.1.2 树的遍历及应用 4.2 二叉树 4.2.1 实现 4.2.2 例子:...

    数据结构与算法分析-Java语言描述(第2版)_1_2

    3.6.3 应用 3.7 队列adt 3.7.1 队列模型 3.7.2 队列的数组实现 3.7.3 队列的应用 小结 练习第4章 树 4.1 预备知识 4.1.1 树的实现 4.1.2 树的遍历及应用 4.2 二叉树 4.2.1 实现 4.2.2 例子:...

    C++数据抽象和问题求解(第6版).[美]Frank M. Carrano(带详细书签).pdf

    ◆ 诠释了ADT的主要应用,如查找航班图、事件驱动的模拟和八皇后问题 ◆ 大部分章节中的例子都使用了标准模板库(STL) ◆ 介绍了递归 ◆ 附录中提供了基本的C++语法,以帮助学生从其他语言转换为C++ 第1章 数据...

    Lab8-carolinacervantes

    例子: ./build/scripts/cs2-lab10-wordcount-java asdf oiu qwer asdf oiu oiu qwer qwer oiu asdf asdf xzc EOF (ctrl-D or ctrl-Z) asdf=4 oiu=4 qwer=3 xzc=1 具体来说: 完成各种来源中的TODO...

    编程新手真言......

    第四部分 一个例子:游戏引擎和实现 206 第12章 设计(需求分析) 207 12.1 第一天:接到一个案子 207 12.2 第二天:需求分析 208 第13章 设计(领域分析与抽象) 210 13.1 原语设计 210 13.2 了解Yake 216 13.3 ...

Global site tag (gtag.js) - Google Analytics