C++数据结构类族结构的进化

本文介绍LMSLib数据结构库的设计理念,包括单一继承树原则,通过顶层父类MyObject规范对象行为,以及提高代码可移植性的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们在MyLib数据结构内定义了顶层父类MyObject,数据结构中的所有子类都继承于MyObject顶层父类,前边我们定义的智能指针类SmartPointer、异常类ExcepTion都要稍作改动(这里代码不再显示,直接在对应的篇章中继承自MyObject类即可),将他们继承于MyObject类,确保MyLib 中的所有类位于单一的继承树。

LMSLib数据结构库的开发方式
    - 单一继承树:所有类都继承自MyObject,规范堆对象创建时的行为
    - 只抛异常,不处理异常:使用THROW_EXCEPTION抛出异常,提高可移植性
    - 弱耦合性:尽量不使用标准库中的类和函数,提高可移植性

目前为止,对于LMSLib数据结构,我们已经完成了 智能指针类异常类顶层父类,并且做了相应的改进,将智能指针类与异常类都继承自顶层父类。后续将逐渐完成链表、树等这些数据结构。

内含资源如下: 1.基本数据结构 1.1.Array ........... 动态数组 1.2.LinkedList ... 链表 1.3.BST .............. 二分搜索树 1.4.MapBST ..... 二分搜索树(用于实现映射) 1.5.AVLTree ...... AVL树 2.接口 2.1.Queue ........... 队列接口 2.2.Stack .............. 栈接口 2.3.Set .................. 集合接口 2.4.Map ............... 映射接口 2.5.Merger .......... 自定义函数接口 2.6.UnionFind ..... 并查集接口 3.高级数据结构 3.1.ArrayQueue .......................... 队列_基于动态数组实现 3.2.LinkedListQueue .................. 队列__基于链表实现 3.3.LoopQueue ........................... 循环队列_基于动态数组实现 3.4.PriorityQueue ....................... 优先队列_基于最大二叉堆实现 3.5.ArrayPriorityQueue ............. 优先队列_基于动态数组实现 3.6.LinkedListPriorityQueue ..... 优先队列_基于链表实现 3.7.ArrayStack ............................. 栈_基于动态数组实现 3.8.LinkedListStack ..................... 栈_基于链表实现 3.9.BSTSet ..................................... 集合_基于二分搜索树实现 3.10.LinkedListSet ....................... 集合_基于链表实现 3.11.BSTMap ................................ 映射_基于二分搜索树实现 3.12.AVLTreeMap ....................... 映射_ 基于AVL树实现 3.13.LinkedListMap .................... 映射_基于链表实现 3.14.MaxHeap ............................. 最大二叉堆 3.15.SegmentTree ...................... 线段树 3.16.Trie ......................................... 字典树 3.17.QuickFind ............................ 并查集_基于数组实现 3.18.QuickUnion ......................... 并查集_基于树思想实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值