![](https://img-blog.csdnimg.cn/7eb761b27f1b4226a0907e3a9d0e7151.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
文章平均质量分 71
包括常见数据结构的知识点和题目
捡到一只姜小鱼
白居易:你没尝过我在寒冬的深夜里苦苦写诗跪求一字的折磨,就知道什么是心血!
我:coding一夜才通过的心血你也不懂啊……
展开
-
【栈的抽象类定义】【栈判空/进栈/出栈/访问栈顶元素】【顺序栈的抽象类实现】【顺序栈各种操作的性能分析】【链接栈的抽象类实现】
【栈的定义】栈是一种运算受限的线性表,在这种线性表上进行插入和删除运算限定在某一处进行。允许进行插入和删除操作的一端被称为栈顶,另一端称为栈底,这是一种后进先出的结构(Last In First Out,LIFO)或者先进后出(First In Last Out,FILO)。【栈的抽象类定义】template<class elemType>class stack{public://还是将创建一个空的栈的函数利用具体实现类的构造函数来实现 virtual bo...原创 2022-05-15 10:34:00 · 321 阅读 · 0 评论 -
【双链表的抽象类实现】【C++代码】【插入/删除/查找/定位访问/遍历/清除功能实现】
【双链表的概念】每个结点既保存直接后继结点的地址,又保存直接前驱结点的地址。【双链表的类设计】template<class elemType>class dLinkList :public list<elemType>{private: struct node { elemType data; node* prev, * next; node(const elemType& x, node* p = NULL, node...原创 2022-05-04 19:48:11 · 1108 阅读 · 0 评论 -
【单链表】【单链表类的设计】【move函数找到第i个结点】【struct结点类】【设置表长currentLength代替每次遍历】
目录【单链表的概念】【单链表类的设计】【几点注意】【各个功能函数的具体实现】【单链表的概念】 相比于顺序表,每个结点增加了一个指针字段,如“next”,该指针指向它的直接后继结点,最后一个结点的next字段为空。一个数据结点由两个部分组成,一个是存储数据元素本身,另外一个存储它的直接后继元素的存储地址。我们对单链表附加了一个头结点,为了在单链表里面插入和删除操作更加方便。【单链表类的设计】template <class elemType&...原创 2022-05-02 09:30:00 · 1226 阅读 · 0 评论 -
【线性表】【线性表的抽象类形式】【无需创建表的操作——利用构造函数】【纯虚析构函数的作用——解决内存泄漏】
【线性表的抽象类形式】把每一个操作都定义成一个纯虚函数,如果该类派生出一个类时,那么要重写这些纯虚函数;如果不重新定义这些纯虚函数,这些纯虚函数就留在了派生类中,那么派生类也变成了一个抽象类,不能真正使用。先放代码如下:template<class elemType>class list{public: virtual void clear() = 0;//清除 virtual int length() const = 0;//长度 virtual...原创 2022-04-29 21:52:09 · 176 阅读 · 2 评论 -
【顺序表类定义】【顺序表各种操作类函数表示】【顺序表容量不够问题的解决——doubleSpace函数】【顺序表优缺点】
目录【概念及类定义】【概念】【类定义】【容量不够的问题】【各个函数的具体实现】【顺序表的优缺点】【概念及类定义】【概念】顺序表即为线性表的顺序存储,线性表结点存放在存储器上一段连续的空间中,即一个数组。因为顺序表在进行插入操作时,需要额外的存储空间,所以在申请内存空间时,要留有余地。【类定义】template<class elemType>class seqList :public list<elemType>//...原创 2022-05-01 09:30:00 · 716 阅读 · 0 评论