64,642
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
using namespace std;
# include <stack>
struct trees
{
trees *left;
trees *rignt;
char data;
};
stack<trees> S;
void creat(trees *tree)
{
char c;
cout<<"please input the data : (expect '#')"<<endl;
cin >> c;
if(c=='#')
{
tree = NULL;
return;
}
else
{
tree = new trees;
tree->data=c;
creat(tree->left);
creat(tree->rignt);
}
}
void show1(trees *tree) //前序
{
trees temp;
while (!S.empty()) S.pop();
if(!tree)
{
cout<<"the tree is empty!"<<endl;
}
else
{
while(tree!=NULL||!S.empty())
{
while(tree!=NULL)
{
cout<< tree->data <<endl; //不能正确的打印出来
S.push(*tree);
tree=tree->left;
}
temp = S.top();
S.pop();
tree=temp.rignt;
}
}
}
int main()
{
int leap;
trees tree;
while(cin>>leap)
{
switch(leap)
{
case 1: creat(T);break;
case 2: show1(T);break;
}
}
return 0;
}
#include<iostream>
using namespace std;
# include <stack>
struct trees
{
trees *left;
trees *rignt;
char data;
};
stack<trees> S;
void creat(trees *tree)
{
char c;
cout << "please input the data : (expect '#')" << endl;
cin >> c;
if (c == '#')
{
tree = NULL;
return;
}
else
{
tree = new trees;
tree->data = c;
creat(tree->left);
creat(tree->rignt);
}
}
void show1(trees *tree) //前序
{
trees temp;
while (!S.empty()) S.pop();
if (!tree)
{
cout << "the tree is empty!" << endl;
}
else
{
while (tree != NULL || !S.empty())
{
while (tree != NULL)
{
cout << tree->data << endl; //不能正确的打印出来
S.push(*tree);
tree = tree->left;
}
temp = S.top();
S.pop();
tree = temp.rignt;
}
}
}
int main()
{
int leap;
trees tree;
while (cin >> leap)
{
switch (leap)
{
case 1: creat(&tree); break;
case 2: show1(&tree); break;
}
}
return 0;
}