参考了这篇文章
https://segmentfault.com/a/1190000002451356
CTreeData 为插入节点数据,用户可以根据自身情况自定义
tree.h
#ifndef _TREE_H_
#define _TREE_H_
#include<stdlib.h>
#include<string.h>
class CNode
{
public:
CNode(){
data = NULL;
first_child = NULL;
next_sibling = NULL;
}
~CNode(){
}
void *data;
CNode *first_child, *next_sibling;//first_child是第一个子节点,next_sibling是fc的临节点
};
/* 这个函数用于处理多叉树数据,各种数据类型自定义 */
class CTreeData
{
public:
CTreeData(char *ch){
data = _strdup(ch);
}
~CTreeData(){
free(data);
}
int cmpNode(CNode *node){
//这个函数根据自己的时间情况自定义
if (0 == ((CTreeData*)node->data)->cmpData(data)){
return 0;//数据匹配
}
else{
return -1;//数据不匹配
}
}
int cmpData(char *indata){
//这个函数根据自己的时间情况自定义
if (0 == strcmp(data, indata)){
return 0;//数据匹配
}
else{
return -1;//数据不匹配
}
}
void print(){
printf("%s ", data);//先序打印遍历
}
private:
char *data;
};
template <class T>