//二叉树深度遍历
#include<iostream>
#include<vector>
#include<stack>
#include<queue>
using namespace std;
struct binaryTreeNode
{
int value;
binaryTreeNode *pLeft;
binaryTreeNode *pRight;
};
//DFS
int DFS(binaryTreeNode *pRoot)
{
if(NULL==pRoot)
{
return -1;
}
stack<binaryTreeNode *> unvisited;
binaryTreeNode *pCurrent=NULL;
unvisited.push(pRoot);
while(!unvisited.empty())
{
pCurrent=unvisited.top();
cout<<pCurrent->value<<endl;
unvisited.pop();
if(pCurrent->pRight) unvisited.push(pCurrent->pRight);
if(pCurrent->pLeft) unvisited.push(pCurrent->pLeft);
}
return 0;
}
int main()
{
binaryTreeNode n1,n2,n3,n4,n5,n6,n7;
n1.value=8,n2.value=6,n3.value=10,n4.value=5,n5.value=7,n6.value=9,n7.value=11;
n1.pLeft=&n2,n1.pRight=&n3;
n2.pLeft=&n4,n2.pRight=&n5;
n3.pLeft=&n6,n3.pRight=&n7;
n4.pLeft=NULL,n4.pRight=NULL;
n5.pLeft=NULL,n5.pRight=NULL;
n6.pLeft=NULL,n6.pRight=NULL;
n7.pLeft=NULL,n7.pRight=NULL;
binaryTreeNode *pRoot=&n1;
DFS(pRoot);
return 0;
}
二叉树深度遍历
最新推荐文章于 2024-05-31 20:16:50 发布