代码如下:
#ifndef _HEAD_H
#define _HEAD_H
template< class datatype >
struct treenode
{
datatype data ;
treenode< datatype > *lchild , *rchild ;
};
template< class datatype >
class tree
{
private:
treenode< datatype > root ;
treenode< datatype > creattree ( treenode< datatype > *root ) ;
void preorder ( treenode< datatype > *root ) ;
public:
tree () ;
void preorder () ;
};
#endif
#include
#include"HEAD.h"
template< class datatype >
treenode< datatype >* tree< datatype > :: creattree ( treenode< datatype > *root )
{
char ch ;
std::cin >> ch ;
if ( ch == '#' )
{
root = NULL ;
}
else
{
root = new treenode< datatype > ;
root->data = ch ;
root->lchild = creattree( root->lchild ) ;
root->rchild = creattree( root->rchild ) ;
}
return root ;
}
template< class datatype >
tree< datatype > :: tree()
{
root = creattree( root ) ;
};
template< class datatype >
void tree< datatype > :: preorder()
{
preorder( root ) ;
}
template< class datatype >
void tree< datatype > :: preorder ( treenode< datatype > * root )
{
if ( root )
{
std :: cout << " " << root->data << " " ;
preorder( root -> lchild ) ;
preorder( root -> rchild ) ;
}
};
int main ()
{
printf("请输入相关数据,空节点记为\"#\"\n") ;
tree< char > tree_text ;
tree_text.preorder() ;
system("pause") ;
}
为什么运行了程序后,程序一直停留在创建的界面,即:
麻烦大神们帮忙看下代码,指点迷津!!!
我明白了,原来是我少打了些东西...