Posted on 2006-06-25 10:33
Enjoy Life 阅读(413)
评论(0) 编辑 收藏 引用 所属分类:
程序员面试功略
算法:用堆栈实现
创建堆栈
把根节点压入堆栈
当堆栈不为空时,循环
弹出一个节点
如果这个节点不是NULL
输出该值
把这个节点的右节点压入堆栈
把这个节点的左节点压入堆栈
void PreOderTranversal(node *root)
{
element *TheStack;
void *data;
node *CurNode;
CreateStack(&TheStack);
Push(&TheStack, root);
while(Pop(&TheStack, &data)){
CurNode = (node *)data;
if(CurNode){
printf("%d\n", CurNode->value);
Push(&TheStack, CurNode->right);
Push(&TheStack, CurNode->left);
}
}
DeleteStack(&TheStack);
}