2015年初级软考辅导:数据结构算法:多叉树的层次遍历算法
发布时间:2010/3/13 14:37:50 来源:城市学习网 编辑:MOON
最近学习c++,越看越觉得以前所学只是皮毛.这几天正好有空闲就写点小算法玩玩.
多叉树的层次遍历这个在网上有完整程序的好像不多.这次我就把写的贴出来,
有兴趣的朋友一起来研究下.
TreeNode.h文件
#ifndef __TREENODE_
#define __TREENODE_
#include "StdAfx.h"
#include
#include
#include
#include
using namespace std;
class TreeNode
{
private:
long selfID;
string nodeName;
list *p_childList;
public:
TreeNode();
~TreeNode();
/*向当前节点中插入一个子节点*/
void insertChildNode(TreeNode *treeNode);
/*遍历树,层次遍历*/
void LevelTraverse() ;
//判断某个节点是否为叶子节点
bool isLeaf();
//返回当前节点的孩子集合
list * getChildList();
long getSelfId();
void setSelfId(long selfID);
string getNodeName();
void setNodeName(string &nodeName);
};
//返回当前节点的孩子集合
inline list * TreeNode::getChildList()
{
return p_childList;
}
inline long TreeNode::getSelfId()
{
return selfID;
}
inline void TreeNode::setSelfId(long selfID)
{
this-selfID = selfID;
}
inline string TreeNode::getNodeName()
{
return nodeName;
}
inline void TreeNode::setNodeName(string &nodeName)
{
this-nodeName = nodeName;
}
#endif
TreeNode.cpp文件
#include "stdafx.h"
#include "TreeNode.h"
TreeNode::TreeNode()
{
selfID = 0 ;
nodeName = "";
p_childList = NULL;
}
TreeNode::~TreeNode()
{
delete p_childList;
}
//判断某个节点是否为叶子节点
bool TreeNode::isLeaf()
{
if (NULL == p_childList)
{
return true;
}
else
{
return false;
}
}
/*向当前节点中插入一个子节点*/