java的所有函数_Java-程序所有可能的函数执行路径查找算法?

用二叉树应该可以解决!

函数只有执行、不执行两种情况,假定根节点为当前函数名,左儿子为条件成立后执行的函数名,右儿子为条件不成立,即不执行函数名,构造一个数据结构

struct FuncPathTree{

struct FuncPath *left; //条件成立,执行的函数

struct FuncPath *right; //条件不成立,不执行的函数

bool judge; //判断函数是否已执行过

};

改写上述代码,在函数参数列表上增加一个参数,以A为例:

void funcA(...,FuncPathTree);

void funcA()

{

if (condition)

{

funcC(...,FuncPathTree->left); //若仍有函数调用则继续执行,直到左子树到底

} else {

funcD(...,FuncPath->right); //这里将不会执行(if不满足的情况)

}

... //这里保存一下funcC()需要的结果

...

//用judege去判断函数是否已执行,即调用过就将judege赋真,没调用就赋假

if(!(FuncPathTree->left)->judege){

funcC(...,FuncPathTree);

}

if(!(FuncPathTree->right)->judege){

funcD(...,FuncPathTree);

}

//为了记录未执行函数情况,可以在这里模拟一遍执行情况,修改参数等为临时值,防止对正常代码结果干扰,这里比较麻烦,视情况修改

...

}

这样是能考虑到if条件不满足的路径的,最后结果按需要格式遍历下二叉树然后输出就可以了。还可以用判断judege的值去需找该代码真正执行路径。若有不足请指教?效率应该还可以!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java函数速查,方便使用的Java类库查询手册 chm版,可查询以下四个包的所有类库内容:   Package com.ms.wfc.app   Application类   CharacterSet类   Clipboard类   DataFormats类   DataFormats.Formats类   DataObject类   IDataObject界面   IMessageFilter界面   Locale类   Locale.CalendarType类   Locale.DateFormatOrder类   Locale.Languages类   Locale.LeadingZeros类   Locale.MeasurementSystem类   Locale.NegativeNumberMode类   Locale.OptionalCalendarType类 Locale.PositiveCurrencyMode类   Locale.Sort类   Locale.SubLanguages类   Message类   MethodInvoker代理   Registry类   RegistryKey类   SendKeys类   SpecialFolder类   SystemInformation类   SystemInformation.ArrangeDirection类   SystemInformation.ArrangeStartingPosition类   ThreadExceptionDialog类   ThreadExceptionEvent类   ThreadExceptionEventHandler代理   Time类   Timer类   Version类   Window类   Package com.ms.wfc.data.ui   Column类   ColumnEditingEvent类   ColumnEditingEventHandler代理   ColumnEvent类   ColumnEventHandler代理   ColumnResizeEvent类   ColumnResizeEventHandler代理   ColumnUpdatingEvent类   ColumnUpdatingEventHandler代理   DataBinder类   DataBinding类   DataGrid类   DataNavigator类   DataSource类   EnterAction类   ErrorEvent类   ErrorEventHandler代理   GridLineStyle类   PositionChangeEvent类   PositionChangeEventHandler代理   Scrollbars类   TabAction类      Package com.ms.wfc.html   DhAlignment类   DhBaseContainer类   DhBorderInfo类   DhBorders类   DhBorderStyle类   DhBreak类   DhBrowser类   DhBulletedList类   DhButton类   DhCantAddElementException类   DhCantModifyElementException类   DhCell类   DhCheckBox类   DhComboBox类   DhComponentWrapper类   DhCursor类   DhDialogInfo类   DhDocument类   DhEdit类   DhElement类   DhElementExistsInDocumentException类   DhElementNotFoundException类   DhEnumeration类   DhEventInfo类   DhForm类   DhHorizontalRule类   DhHotSpot类   DhHotSpotShapes类   DhHTMLGenerator类   DhHyperlink类   DhImage类   DhInlineFrame类   DhInsertOptions类   DhJumpPoint类   DhLinkTarget类   DhListBox类   DhListType类   DhMargins类   DhMarginWidthI

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值