`
wss71104307
  • 浏览: 222999 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

关于一个算法设计问题,值得想想,大家来看看

阅读更多
如果使用与相关的知识,设计算法来找出一段程序代码中:

       (1)定义了但未被使用的变量;
      (2)使用了但没有被定义的变量;
      (3)其他与变量相关的错误


我的初步想法是:
 
   1.定义一个变量类,
       Class Var
      {
         属性: name,type,isInit(是否初始化),initVal(初始化值),isUsed(是否被使用过);
         方法: 一些基本方法;
      }
   2.程序代码中每个声明的变量(new个Var),作为图的一个结点,用邻接表来实现图。
   3.对使用的每个变量,对图进行搜索(BFS或者DFS),来看是不是被定义过的。(根据Var的name和type判断)并改变isUsed属性。
   4.再对图遍历次,根据Var的isUsed属性看是否有定义了但没被使用的变量。
   5.可以增加些Var属性,来判断是否有重复定义,是否初始化错误之类的。(解决问题3


请教各位JE上的大虾们,可以从下面几个方面但不限于谈谈自己看法(不用说的太复杂,说说思想就行):
    1.对我的想法做出评价
    2.如果必须用图,有没有更好的实现办法
    3.不考虑用图,有没有更好的解决办法.(考虑O(n))
    4.具体的编译器是怎么实现的这些问题的
分享到:
评论
3 楼 shuchaoo 2008-11-06  
请看编译原理的龙书
2 楼 xingqiliudehuanghun 2008-10-30  
查找未使用的变量的js实现,机器比较差开eclipse很慢
<textarea id="txtCode" rows="10" cols="50">String a;
String b="abc";
int i;
public char d;
public float c=123;</textarea>
<input type="button" name="btnCheck" id="btnCheck" value="检测">

<script type="text/javascript">
function $(sId){
return document.getElementById(sId);
}

var aClass=[
"int","char","long","double","byte",
"String","List","Map","Iterator"
/*,....*/
];

var sRegUnUse="([private|public|protected]\\s+)?"
      +"("+aClass.join("|")+")\\s+"
      +"([\\w|\\$]+)"
      +"[\\s*?=\\s*?|null]?;";

var oRegUnUse=new RegExp(sRegUnUse,"g");

$("btnCheck").onclick=function(){
var sCode=$("txtCode").value;
var aUnUseVar=[];
while(oRegUnUse.exec(sCode)){
aUnUseVar.push(RegExp.$3);
}
alert("未使用变量:"+aUnUseVar.join("、"));
}
</script>

1 楼 xingqiliudehuanghun 2008-10-30  
用正则查找可能更简单一些。

相关推荐

    算法设计与分析(王晓东) 算法设计与分析电子教案

    (要是觉得这个不值这个分,说一下,我去你那里随便下一个 把分还你) 第1章 算法概述. 1.1 算法与程序 1.2 算法复杂性分析 习题1 第2章 递归与分治策略 2.1 递归的概念 2.2 分治法的基本思想 2.3 二分搜索技术 ...

    算法设计与分析课后习题答案(李春保)

    6. 问题求解:习题还涉及了其他一些具体的算法设计问题,如使用stack容器取出栈顶到栈底的第k个元素,求解整数序列中相差最小的元素对个数,以及处理map容器中的重复value计数等。这些问题考查学生对数据结构和算法...

    数字三角形问题给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形

    试设计一个算法,计算出从三角形 的顶至底的一条路径,使该路径经过的数字总和最大。 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 编程任务: 对于给定的由n 行数字组成的数字三角形,编程计算从三角形的顶至底的路径...

    算法分析与设计pdf

    分治法是递归的一种应用模式,将一个问题分解成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。例如,快速排序和归并排序就是典型的分治算法。 接着,我们关注...

    算法设计与分析 试卷 华南理工

    **算法设计与分析**是计算机科学中的核心课程之一,它主要关注如何有效地解决问题,并通过创建高效算法来实现这一目标。**华南理工**作为一所享有盛誉的高等学府,其在计算机科学教育方面有着深厚的底蕴,提供的**...

    算法设计与分析-张德富-答案全

    算法还应当能够处理有限集合的问题,比如判断一个整数集是否有和为m的子集,这涉及到集合的穷举,即元素个数和子集数量均为有限。 2. 最优解与近似解:在算法中,最优解指在所有可能的解中最佳的一个,例如金牌获得...

    屈婉玲算法与设计及答案

    这个压缩包文件包含了她课程的相关资料,包括课件和作业答案,为学习者提供了一个全面理解算法设计与分析的资源库。 首先,我们要明白算法设计与分析是计算机科学中的核心课程,它涉及如何有效地解决问题和执行计算...

    (陈慧南 第3版)算法设计与分析——课后习题答案(1~8章)

    《算法设计与分析》是计算机科学领域的一本经典教材,主要涵盖了算法的设计方法、分析技巧以及实际应用。这本书由陈慧南编著的第三版,提供了全面且深入的算法学习资源,尤其对于学习者来说,课后习题的答案是深化...

    计算机算法——设计与分析导论(第三版).pdf

    综上所述,本书《计算机算法——设计与分析导论》通过介绍算法的基本概念、分析算法的方式、使用数学背景来描述算法性能,以及提供具体的算法实例,为读者提供了一个全面了解计算机算法设计与分析的框架。...

    算法设计与分析期末复习笔记+期末习题解答

    根据提供的文件内容,我们可以整理出以下IT知识点...通过上述知识点的整合,我们可以看出文档内容涵盖了算法设计与分析的多个重要方面,包括但不限于各类算法的定义、性质、应用、以及在特定问题下的时间复杂度分析等。

    算法设计与分析基础 第三版 课后答案 (Anany.Levitin 潘彦)

    动态规划是书中重点讲解的一个概念,它常用于解决最优化问题,如背包问题、最长公共子序列等。课后答案会展示如何构建状态转移方程,以及如何通过填表法或自底向上的方式求解。 图算法部分包括了深度优先搜索(DFS...

    计算机算法设计与分析期末试题4套(含答案)

    在这个压缩包中,包含的是四套计算机算法设计与分析的期末试题及对应的答案,对于学习者来说,这是一个宝贵的复习资源。 1. **算法设计**:设计算法是解决问题的关键步骤,通常涉及数据结构的选择、问题分解和递归...

    算法分析与设计课下习题答案

    总的来说,《算法分析与设计》的课下习题答案是一个宝贵的资源,它提供了实践算法设计理论的机会,帮助学生从理论到实践的过渡,提高解决实际问题的能力。通过深入学习和反复练习,学生将能够熟练运用各种算法,为...

    算法设计与分析课后习题答案(完整的)

    根据提供的文件内容,我们可以总结出以下关于《算法设计与分析》课程及其配套辅助教材的知识点: 1. 计算机算法设计与分析课程定位:该课程是一门面向设计的教育课程,居于计算机科学的核心地位。它主要教授计算机...

    《计算机算法设计与分析+第4版课后答案1-9章》

    《计算机算法设计与分析》是计算机科学领域的一本经典教材,主要关注如何设计高效、合理的算法以及如何分析它们的性能。第四版的课后答案涵盖了从第一章到第九章的重要内容,这包括了基础的算法思想、数据结构以及...

    用贪心算法解单源最短路径问题

    贪心算法解决单源最短路径问题的基本思想是分步求出最短路径,每一步产生一个到达新目的顶点的最短路径。下一步所能达到的目的顶点通过贪婪准则选取,即选择路径最短的目的顶点。设置顶点集合S,并不断作贪心选择来...

    算法设计与分析基础(Anany Levitin著,潘彦译)第三版课后答案

    《算法设计与分析基础》是Anany Levitin...总之,这本书的课后答案集是一份宝贵的资源,对于想要深入学习算法设计与分析的读者来说,它提供了一个自我检查和提升的平台,帮助读者在掌握理论的同时,提升实际应用技能。

    算法设计与分析部分答案

    其基本思想是将一个难以直接解决的大问题,分割成一些规模较小的相同问题,然后各个击破,分而治之。典型的分治算法有快速排序、归并排序和大数乘法等。在这些算法中,问题被分解为更小的子问题,直到子问题可以直接...

    算法设计与分析 吕国英 第三章第四章第五章课后习题答案

    此外,可能还会涉及稳定性和原地排序的概念,这些都是评价一个排序算法优劣的重要标准。 第四章可能会涵盖图论算法,如最短路径问题(Dijkstra算法、Floyd-Warshall算法、Bellman-Ford算法)、最小生成树(Prim算法...

    写给大家看的算法书

    算法这个词对于非计算机从业人士而言,似乎就是晦涩、神秘的代名词。其实,算法在日常生活中随处可见。...通读全书,读者可以了解到计算机编程与算法的基本理念,也能对简单常用的算法有一个大概的理解。

Global site tag (gtag.js) - Google Analytics