- 1、本文档共162页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
树和 二叉树 叉树遍历线索二叉树二叉搜索树二叉树的计数
树和 二叉树 二叉树遍历 线索二叉树 二叉搜索树 二叉树的计数 堆 树与森林 霍夫曼树及其应用 一、树和二叉树 树tree的定义 (1) 无结点的树 空树 (2) 非空树 仅有一个根结点 其余结点分为若干 互不相交的子树 二叉树的存储 完全二叉树的顺序存储 #define MaxTreeSize 100 typedef TElemType SqBiTree[MaxTreeSize]; SqBiTree bt; 二叉树的链式存储 树结点 二叉树结点类的定义 #ifndef TREENODE_CLASS #define TREENODE_CLASS #ifndef NULL const int NULL = 0; #endif // NULL template class Tclass BinSTree; template class T class TreeNode { protected: TreeNodeT *left, *right; public: T data; TreeNode (const T item, TreeNodeT *lptr = NULL, TreeNodeT *rptr = NULL); virtual ~TreeNode(void); TreeNodeT* Left(void) const; TreeNodeT* Right(void) const; void GetLeft(TreeNodeT*lptr); void GetRight(TreeNodeT*rptr); friend class BinSTreeT; }; // the pointer NULL assigns an empty tree template class T TreeNodeT::TreeNode (const T item, TreeNodeT *lptr, TreeNodeT *rptr): data(item), left(lptr), right(rptr) {} // method Left allows the user// to reference the left child template class T TreeNodeT* TreeNodeT::Left(void) const { // return the private member value left return left; } // method Left allows the user //to reference the right child template class T TreeNodeT* TreeNodeT::Right(void) const { // return the private member value right return right; } // does nothing. //exists so nodes derived from it will be // destroyed properly by delete. //used in Chapter 13 for AVL trees template class T TreeNodeT::~TreeNode(void) {} #endif 建立一个结点 template class T TreeNodeT *GetTreeNode(T item, TreeNodeT *lptr= NULL, TreeNodeT *rptr = NULL) { TreeNodeT *p; p = new TreeNodeT (item, lptr, rptr); if (p == NULL) { cerr Memory allocation failure!\n; exit(1); } return p; } 撤销一个结点 template class T void FreeTreeNode(TreeNodeT *p) { delete p; } 创建三棵树 void MakeCharTree(TreeNodecha
您可能关注的文档
- 朱雪忠:我国专利数量的失控及其危害.doc
- 机关春节联欢会方案.doc
- 机加工成本核算_核价方法.pptx
- 机场规划说明书..doc
- 机械.动力-3.风帆小车.pptx
- 机械制图 画零件图作业(支座蜗轮箱体).ppt
- 机械制造技术基础_模拟试卷(一)及答案.doc
- 机制5班 李道刚.doc
- 机房群控系统控制逻辑说明.doc
- 机械安全生产及事故防范培训..ppt
- 《GB/T 4340.2-2025金属材料 维氏硬度试验 第2部分:硬度计的检验与校准》.pdf
- GB/T 4340.2-2025金属材料 维氏硬度试验 第2部分:硬度计的检验与校准.pdf
- 中国国家标准 GB/T 4340.3-2025金属材料 维氏硬度试验 第3部分:标准硬度块的标定.pdf
- 《GB/T 4340.3-2025金属材料 维氏硬度试验 第3部分:标准硬度块的标定》.pdf
- GB/T 4340.3-2025金属材料 维氏硬度试验 第3部分:标准硬度块的标定.pdf
- 《GB/T 45284.1-2025信息技术 可扩展的生物特征识别数据交换格式 第1部分:框架》.pdf
- 中国国家标准 GB/T 45284.1-2025信息技术 可扩展的生物特征识别数据交换格式 第1部分:框架.pdf
- GB/T 45284.1-2025信息技术 可扩展的生物特征识别数据交换格式 第1部分:框架.pdf
- 《GB/T 45284.5-2025信息技术 可扩展的生物特征识别数据交换格式 第5部分:人脸图像数据》.pdf
- 中国国家标准 GB/T 45284.5-2025信息技术 可扩展的生物特征识别数据交换格式 第5部分:人脸图像数据.pdf
文档评论(0)