数据结构的模拟实现
文章平均质量分 74
数据结构的知识点,以及二叉树和数据结构的底层实现逻辑
ly_1115
随遇而安,没必要逞强。
展开
-
【数据结构】哈希冲突解决方法(开散列)
在之前我介绍了[unordered系列关联式容器](https://blog.csdn.net/ly_6699/article/details/89923974)的使用。上篇博客中,我又讲到unordered 系列的底层结构——[哈希冲突的解决方法之闭散列](https://blog.csdn.net/ly_6699/article/details/90232175)。在这里,我将继续讲unordered系列的底层结构——哈希冲突的解决方法之开散列。原创 2019-05-21 18:13:29 · 553 阅读 · 0 评论 -
【数据结构】哈希结构--哈希冲突解决方法(闭散列)
**unordered系列的关联式容器在前面博客:[unordered系列] 中讲到了,这里我就讲一下:1)底层的结构——哈希结构和哈希冲突2)哈希冲突的解决方法——闭散列和[开散列]原创 2019-05-15 11:12:51 · 707 阅读 · 0 评论 -
【数据结构】队列的实现
队列是一种受限制的线性表,特殊之处在于它只允许在表的前端进行删除操作,只能在表的后端进行插入操作。我们称只允许删除的一端为队头,只进行插入的一端为队尾。即队列是一种先进先出(First In First Out)的线性表,简称FIFO。队列的顺序存储结构:是指分配一块连续的存储单元存放队列中的元素,并附设两个指针:队头指针 front指向队头元素,队尾指针 rear 指向队尾元素的下一个位置。原创 2019-01-21 21:54:05 · 209 阅读 · 0 评论 -
【数据结构】顺序表的完整实现
顺序表:采用顺序存储结构存储的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素,使得线性表在逻辑结构上相邻的元素存储在连续的物理存储单元中。即通过数据元素物理存储的连续性来反映元素之间逻辑上的相邻关系SeqList.h#define _CRT_SECURE_NO_WARNINGS 1#include <stdlib.h>#include <s...原创 2019-01-21 22:00:41 · 360 阅读 · 0 评论 -
【数据结构】无头单向非循环链表的实现
无头单向非循环链表的特点:不带头结点,只有next指针,不循环SList.h#ifndef __SLIST_H__#define __SLIST_H__#define _CRT_SECURE_NO_WARNINGS 1#include <stdlib.h>#include <stdio.h>#include <assert.h>#include...原创 2019-01-21 22:12:48 · 208 阅读 · 0 评论 -
【数据结构】带头双向循环链表的实现
List.h#ifndef __LIST_H__#define __LIST_H__#define _CRT_SECURE_NO_WARNINGS 1#include <stdlib.h>#include <stdio.h>#include <assert.h>#include <malloc.h>#endiftypedef i...原创 2019-01-21 22:18:59 · 240 阅读 · 0 评论 -
【C++】完成Date类 ( 完整代码)
Date类完成的主要功能1.四个成员函数;构造函数,析构函数,拷贝构造函数,赋值重载(=)2.重载符号:+,-,+=,-=,&amp;lt;,&amp;gt;,&amp;lt;=,&amp;gt;=,==,!=3.前置++,前置–,后置++,后置–完整代码#define _CRT_SECURE_NO_WARNINGS 1#include &amp;lt;iostream&amp;gt;原创 2019-02-23 13:49:09 · 1135 阅读 · 1 评论 -
【数据结构】二叉树的实现&递归遍历(完整代码)
二叉树实现的功能包含以下内容:1.按要求创建一棵树2.计算树节点,树叶子节点的个数3.输出树中第n层的节点个数4.关于树前序,中序,后序的递归遍历5.树的层序遍历6.判断树是否为完全二叉树7.树的前序,中序,后序的非递归遍历>二叉树的递归遍历:直接按遍历顺序递归调用>二叉树的层序遍历可以借用队列结构来实现>二叉树的非递归遍历可以借用栈结构来实现> **前序遍历: 根 -- 左 -- 右 > 中序遍历: 左 -- 根 -- 右 > 后序遍历: 左 -- 右 -- 根**原创 2019-02-23 14:03:57 · 19993 阅读 · 6 评论 -
【数据结构】二叉树的非递归遍历(完整代码)
题目描述按要求建立一棵树(#表示空),并用非递归的方法对它进行遍历解题思路1.递归遍历:则将二叉树的遍历看作是分治问题,将每一棵树都分为根-左子树-右子树三部分,每部分按同样的方法递归遍历即可。具体实现见下篇博客 [二叉树的实现&递归遍历](https://blog.csdn.net/ly_6699/article/details/87891642)2.非递归遍历:我们可以借用栈的知识完成树的遍历。使用栈完成的过程以下面的前序遍历为例原创 2019-02-23 15:23:12 · 3071 阅读 · 0 评论 -
【C++】模拟实现String类功能( 完整代码)
完成功能1.默认成员函数2.重载比较运算符(&lt;,&lt;=,&gt;,&gt;=,==,!=)3.运算符重载4.追加一个字符的PushBack函数,追加一个字符串的Append函数5.删除len长度的字符串 Erase函数6.判断字符串的长度,并适当增容7.插入一个字符,插入一个字符串 Insert函数8.找一个字符,找一个字符串 Find函数完整代码#pragma on...原创 2019-02-24 10:57:39 · 1304 阅读 · 2 评论 -
【数据结构】 二叉搜索树的模拟实现——完整代码
二叉搜索树是支持set和map 实现的底层结构。在上篇博客 二叉搜索树中,我详细讲到过。这里我主要完成二叉搜索树的完整代码中包含的几个接口:构造函数,析构函数,拷贝构造,赋值重载,查找,插入,删除,打印及测试过程。BSTree.h#define _CRT_SECURE_NO_WARNINGS 1# pragma once#include <stdlib.h>#incl...原创 2019-05-02 17:17:47 · 1091 阅读 · 0 评论 -
【C++】红黑树的完整实现
#define _CRT_SECURE_NO_WARNINGS 1#include <stdlib.h>#pragma once#include <iostream>using namespace std;enum color{ RED, BLACK};template<class K, class V>struct RBSTreeN...原创 2019-05-04 19:12:17 · 465 阅读 · 2 评论 -
【C++】AVL树的完整实现
#define _CRT_SECURE_NO_WARNINGS 1#pragma once#include <stdlib.h>#include <iostream>#include <assert.h>using namespace std;namespace LY{ template <class K, class V> ...原创 2019-05-04 19:05:24 · 2512 阅读 · 0 评论 -
【C++】模拟实现List 功能
List.h#define _CRT_SECURE_NO_WARNINGS 1#include <stdlib.h>#include <stdio.h>#include <assert.h>#include <algorithm>//算法头文件#include <iostream>using namespace std;...原创 2019-03-17 19:06:05 · 381 阅读 · 0 评论 -
【C++】vector容器的模拟实现
vector容器实际是一个动态数组,它与array的操作非常相似。最大的区别就在于vector的“动态”,动态的理解就是数组的扩容由vector内部机制实现动态开辟空间,无需用户手动操作(申请新空间-复制元素-释放原空间)。下面我将通过对vector的理解,自己模拟实现vector的基本操作方法,供大家更好的理解这个容器。下面是vector函数实现的思想,最下面附有笔者完整代码和测试类,有需要的自取~原创 2019-03-10 23:39:55 · 1070 阅读 · 0 评论 -
【数据结构】栈的实现
栈栈(stack)又名堆栈,它是一种运算受限 的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对的另一端即为栈底。栈的模型:栈的实现: #define _CRT_SECURE_NO_WARNINGS 1 #include &amp;lt;stdlib.h&amp;gt; #include &amp;lt;stdio.h&amp;gt; #include &原创 2019-01-19 16:29:14 · 207 阅读 · 0 评论