编程日志5.5
树的结构代码
#include<iostream>
using namespace std;
//由于树的每个结点可能有一些孩子结点,这些孩子结点的数量不确定,所以可以用一个链表来把所有的孩子结点给串起来
//链表结点定义
//这段代码定义了一个结构体ListNode,用于表示链表中的一个结点。这个结构体包含两个成员变量,data和next
template<typename T>
struct ListNode {
T data; //表示结点的存储类型为T,可以是任何类型,根据实际需求进行定义
ListNode* next; //表示指向下一个结点的指针
ListNode(T d):data(d),next(NULL){}//构造函数ListNode(T d),它接受一个类型为T的参数d,并用于初始化结点的数据成员data
};
//树的结点定义
//这段代码定义了一个模板结构体TreeNode,用于表示树节点。结构体包含两个成员变量:data和*childrenHead
template<typename T>
struct TreeNode {
T data; //表示结点的存储类型为T,可以是任何类型(数据域)
//代表一个链表头,这个链表负责把当前这个树结点的所有孩子结点给串起来。而这些孩子结点的类型就是TreeNode<T>*(指针类型)
ListNode<TreeNode<T>*>* childrenHead;
TreeNode