首页
社区
课程
招聘
汇编遍历二叉树,请问哪里不对?
发表于: 2014-4-29 19:33 4243

汇编遍历二叉树,请问哪里不对?

2014-4-29 19:33
4243
mov  EbX,1871d4h
MOV  EbX,[EbX]
add  EbX,64h
MOV  EbX,[EbX];计算二叉树树根地址
invoke  PrintDTree, ebx;调用遍历函数,开始递归遍历二叉树操作

;名称:PrintDTree
;功能:利用递归遍历输出二叉树
;参数:_pDTree = 二叉树节点指针
;返回:无
PrintDTree proc _pDTree:DWORD
push  edx
  mov    edx, _pDTree
  assume  edx:ptr DTREENODE
  mov al,[edx+15]
          .if  al==0;二叉树结束标志判断       
invoke        SetDlgItemInt,hDllInst,IDC_INFO,edx,FALSE;提示用的,用来显示EBX应该是变化的
invoke   Sleep,1000               
      invoke  PrintDTree, [edx].lChildNode;递归调用左树               
      invoke  PrintDTree, [edx].rChildNode;递归调用右树
     .endif
  pop edx
  ret
PrintDTree endp

就这么几行简单的东西,为什么就是不对呢?读二叉树老是错。

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 459
活跃值: (344)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
2
invoke  PrintDTree, [edx].lChildNode;递归调用左树   
      invoke  PrintDTree, [edx].rChildNode;递归调用右树

这左和右一样的?
lChildNode 和 rChildNode 那里定义的》?
2014-4-29 21:41
0
雪    币: 25
活跃值: (477)
能力值: (RANK:20 )
在线值:
发帖
回帖
粉丝
3
定义的数据结构   左树 根  右树  ID  标识符
2014-5-1 00:26
0
雪    币: 106
活跃值: (31)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
1、二叉树没建对?检查下结构。
2、结束标志是否正确?

mov al,[edx+15]
.if  al==0;二叉树结束标志判断
2014-5-1 10:00
0
雪    币: 25
活跃值: (477)
能力值: (RANK:20 )
在线值:
发帖
回帖
粉丝
5
二叉树肯定是对的
主要是这里读
请问下   判断字节是不是为1    MOV  AL,[EDX+15]  .IF  AL==1
这么写对吗  是不是要用MOVES
2014-5-2 20:39
0
游客
登录 | 注册 方可回帖
返回
//