完全二叉树的顺序存储与非递归算法前序遍历

/*一棵具有n个结点的完全二叉树存放在二叉树的顺序存储结构中,试编写非递归算法对该树进行前序遍历。*/

#include <iostream>
#include <stack>
using namespace std;

const int MaxSize=100;

char BTree[MaxSize];


int main(){
	int length;//节点个数
	stack<int> s;
	int i;
	int root,lchild,rchild;
	cout<<"输入节点个数:"<<endl;
	cin>>length;
	cout<<"输入顺序存储的序列"<<endl;
	for(i=0;i<length;i++){
		cin>>BTree[i];
	}
	root=0;
	s.push(root);
	cout<<"输出前序遍历结果为:"<<endl;
	while(!s.empty()){
		root=s.top();
		s.pop();
		cout<<BTree[root];
		lchild=root*2+1;
		rchild=root*2+2;
		if(rchild<length) s.push(rchild);
		if(lchild<length) s.push(lchild);
	}
	system("pause");
	return 0;
}

    原文作者:递归算法
    原文地址: https://blog.csdn.net/wintersense/article/details/40747393
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞