二叉树的深度优先遍历

本文介绍了二叉树的深度优先遍历,特别是如何通过栈实现深度优先遍历,强调了其与先序遍历的关系。遍历过程包括根节点入栈、栈非空时出栈并输出节点值、右子树入栈、左子树入栈的循环操作。代码实现细节未给出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二叉树的深度优先遍历和先序遍历结果一样的。 思想是采用栈, 首先将根结点压入栈,如果栈不为空,而后出栈并输出当前结点中值,而后先把右子树压入栈,再把左子树压入栈,再判断栈是否为空,循环.....

步骤如下:

(1) 树的根结点入栈

(2)判断栈是否为空,不为空,则出栈,并输出出栈树结点的值

(3)出栈树结点的右子树入栈

(4)出栈树结点的左子树入栈

(5)循环回到(2)

 


创建如上树。详见前面二叉树的创建。

代码如下:

// Tree_depth_breadth.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>

using namespace std;
typedef int type;

//定义二叉树结点
typedef struct node
{
	type data;
	struct node *lchild;
	struct node *rchild;
}node,*bTree;

//建立元素为树节点的栈
typedef struct stack
{
   bTree tree;
   struct stack *next;
}stack,*pStack;


//初始化栈
void Ini
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值