欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > 树-好难-疑难_GPT

树-好难-疑难_GPT

2025/2/6 8:39:44 来源:https://blog.csdn.net/m0_63056769/article/details/143692192  浏览:    关键词:树-好难-疑难_GPT
//
// Created by 徐昌真 on 2024/11/10.
//
#include <iostream>
using namespace std;template<typename T>
struct ListNode{  //新建链表节点T data;          //指向下一个子节点  ListNode< TreeNode<T>* > childHead;  这里的 T 是TreeNde类型的指针ListNode *next;  //指向兄弟节点ListNode(T d): data(d), next(NULL) {}
};template<typename T>
struct TreeNode{  //树节点T data;ListNode< TreeNode<T>* > *childHead;TreeNode(): childHead(NULL) {}void addChild(TreeNode<T>* node){  //插入孩子节点ListNode < TreeNode<T>* > *childNode = new ListNode< TreeNode<T>* > (node);  //childNode保存了对node的指针 也就是node的地址if (childHead == NULL){childHead = childNode;}else{childNode->next = childHead;childHead = childNode;}}
};template<typename T>
class Tree{
private:TreeNode<T> *nodes;TreeNode<T> *root;public:Tree();Tree(int MaxNodes);~Tree();TreeNode<T>* GetTreeNode(int id);void SetRoot(int rootId);void AddChild(int parentId, int sonId);void AssignData(int nodeId, T data);void Print(TreeNode<T> *node = NULL);
};template<typename T>
Tree<T>::Tree(){  //默认构造函数nodes = new TreeNode<T>[100001];
}template<typename T>
Tree<T>::Tree(int maxNodes) {  //传参构造函数nodes = new TreeNode<T>[maxNodes];
}template<typename T>
Tree<T>::~Tree(){  //析构delete[] nodes;
}template<typename T>
TreeNode<T>* Tree<T>::GetTreeNode(int id) {  //获取节点指针return &nodes[id];
}template<typename T>
void Tree<T>::SetRoot(int rootId) {  //设置根节点root = GetTreeNode(rootId);
}template<typename T>
void Tree<T>::AddChild(int parentId, int sonId) {  //连接父子TreeNode<T>* parentNode = GetTreeNode(parentId);TreeNode<T>* sonNOde = GetTreeNode(sonId);parentNode->addChild( sonNOde );
}template<typename T>
void Tree<T>::AssignData(int nodeId, T data) {  //给节点赋值GetTreeNode(nodeId)->data = data;
}template<typename T>
void Tree<T>::Print(TreeNode<T> *node) {if (node == NULL){node = root;}cout << node->data << ' ';ListNode< TreeNode<T>* > *tmp = node->childHead;while(tmp){Print(tmp->data);tmp = tmp->next;}
}int main() {Tree<char> T(6);T.SetRoot(0);T.AssignData(0, 'a');  //节点添加值T.AssignData(1, 'b');T.AssignData(2, 'c');T.AssignData(3, 'd');T.AssignData(4, 'e');T.AssignData(5, 'f');T.AddChild(0, 2);T.AddChild(0, 1);T.AddChild(1, 3);T.AddChild(1, 4);T.Print();return 0;
}

输出

疑难杂症

https://chatgpt.com/share/6731dae1-5b54-800c-8ecd-4eebe00a91a7

https://chatgpt.com/share/67315d8d-46c0-800c-968b-822ae6337414

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com