樹的結構代碼
#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