还剩1页未读,继续阅读
文本内容:
语言实现二叉树的前序遍历非递归C#include stdio.h㊀#includ stdlib.h//定义二叉树节点结构体{㊀㊀㊀struct TrNod intval;㊀㊀struct TreNod*left;;struct TreeNoderight;}//创建新节点的函数㊀㊀struct TrNod createNodeintval{struct TreeNode*node=structTreeNode*mallocsizeofstruct TreeNode;node-val=val;node-left=NULL;return node;//前序遍历函数非递归void preOrderTraversalstruct TreeNode*root{if root==NULL//如果节点为空,则返回{return;,//输出节点值nprintf%d”root-val;preOrderTraversal//遍历左子树//遍root-left;preOrderTraversal root-right;历右子树int main{//创建一棵二叉树//根节点为structTreeNode*root=createNode1;1//左子节点为root-left=createNode2;2//左子节点的左子节点为root-left-left=createNode4;4//左子节点的右子节点为root-lef t-right=createNode5;5//前序遍历二叉树非递归前序遍历结果”;printfpreOrderTraversalroot;printf”\n”;return0;在该代码中,我们首先定义了二叉树节点结构体包括节点的值左子节TreeNode,val点和右子节点然后,我们定义了一个函数,用于创建新的节㊀㊀㊀㊀1ft rightcr atNod点接着,我们定义了个函数,用于前序遍历二叉树在该函数中,preOrderTraversal我们首先判断当前节点是否为空,如果是,则返回;否则,我们先输出当前节点的值,然后递归遍历左子树和右子树最后,在函数中,我们创建了一*棵二叉树,并调用main函数进行前序preOrderTraversal遍历。
个人认证
优秀文档
获得点赞 0