数据结构算法——Visual C++ 6.0程序集 第5章

数据结构算法——Visual C++ 6.0程序集 第5章

ID:40247161

大小:762.00 KB

页数:150页

时间:2019-07-29

数据结构算法——Visual C++ 6.0程序集 第5章_第1页
数据结构算法——Visual C++ 6.0程序集 第5章_第2页
数据结构算法——Visual C++ 6.0程序集 第5章_第3页
数据结构算法——Visual C++ 6.0程序集 第5章_第4页
数据结构算法——Visual C++ 6.0程序集 第5章_第5页
资源描述:

《数据结构算法——Visual C++ 6.0程序集 第5章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据结构算法VisualC++6.0程序集侯识忠等编著中国水利水电出版社第五章树和二叉树5、0树的类定义和实现//树的孩子兄弟表示法为存储结构的结构体Tree.htemplateclassTree;templatestructTreeNode{friendclassTree;//树类为友元private:TreeNode*firstChild;//第一个孩子结点指针域TreeNode*nextSibling;//下一个兄弟结点指针域public:Tdata;//数据域//构造

2、函数TreeNode(Tvalue,TreeNode*fc=NULL,TreeNode*ns=NULL):data(value),firstChild(fc),nextSibling(ns){}//访问指针域的成员函数TreeNode*&FirstChild(){returnfirstChild;}TreeNode*&NextSibling(){returnnextSibling;}};//树类templateclassTree{private:TreeNode*root;//根

3、结点指针TreeNode*curr;//当前结点指针//显示以t为先根结点的树的数据域voidPreOrderTree(TreeNode*&t);//显示以t为后根结点的树的数据域voidPosOrderTree(TreeNode*&t);//使当前结点为t所指结点intCurrent(TreeNode*&t);//在树root中回溯查找结点s的双亲结点TreeNode*SearchParent(TreeNode*&root,TreeNode*&s);public://构造函数与析构

4、函数Tree(){root=curr=NULL;}~Tree(){DeleteSubTree(root);}//使根结点为当前结点intRoot();//使当前结点的双亲结点为当前结点intParent();//使当前结点的第一个孩子结点为当前结点intFirstChild();//使当前结点的兄弟结点为当前结点intNextSibling();//把valve插入到当前结点的最后一个结点voidInsertChild(Tvalue);//删除以t为根结点的子树voidDeleteSubTree(TreeNode*&t

5、);//删除当前结点的第i个孩子结点intDeleteChild(inti);//删除以root为根结点的子树的第i个孩子结点intDeleteChild1(inti);//按先根遍历次序显示树的数据域值voidDisplayTree();//按后根遍历次序显示树的数据域值voidDisplayTree1();};//树类的实现Tree.cpptemplatevoidTree::DeleteSubTree(TreeNode*&t){if(t==NULL)return;TreeNode*q=t

6、->firstChild,*p;while(q!=NULL){p=q->nextSibling;DeleteSubTree(q);q=p;}printf("释放:%2c",t->data);deletet;}templateintTree::Current(TreeNode*&t){if(t==NULL)return0;curr=t;return1;}templateintTree::Root(){if(root==NULL){curr=NULL;return0;}retur

7、nCurrent(root);}templateintTree::FirstChild(){if(curr!=NULL&&curr->firstChild!=NULL)returnCurrent(curr->firstChild);elsereturn0;}templateintTree::NextSibling(){if(curr!=NULL&&curr->nextSibling!=NULL)returnCurrent(curr->nextSibling);elsereturn0

8、;}templateintTree::Parent(){if(curr==NULL){curr=root;return0;}TreeNode*p=SearchParent(root,curr);if(p==NULL)return0;elsereturnCurre

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。