数据结构
文章平均质量分 74
清风徐来~~
Sometimes you have to do what's right,even if how hardest it is.
展开
-
归并排序的递归和非递归
归并排序 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有 序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 关键词:分解、归并、分治、物理上数组、逻辑上二叉树 思路: 把长度为n的输入序列分成两个长度为n...原创 2020-04-07 17:43:07 · 981 阅读 · 0 评论 -
模拟实现模拟实现快速排序递归和非递归
快速排序 快速排序是一种二叉树结构交换排序算法,在日常的使用当中较为频繁的使用; 交换的思想就是 :就是将序列中的两个值值进行比较,然后根据结果交换两个值在序列中的位置,以升序为例,较大值就想序列尾部移动,较小值向序列前部移动; 快排的思想就是:在待排序的元素当中选择一个元素为基准值,按照该排序要求将序列分为两个子序列,左边子序列元素均小于基准值(左右子序列均不包含该基准值),右边子序列均大于基...原创 2020-04-06 16:16:20 · 266 阅读 · 0 评论 -
模拟实现选择排序
认识并且模拟实现选择排序,选择排序包括直接选择排序和堆排序原创 2020-04-01 10:49:14 · 191 阅读 · 0 评论 -
模拟实现插入排序
认识并且模拟实现插入排序,插入排序包含直接插入排序和shell排序原创 2020-04-01 09:24:25 · 358 阅读 · 0 评论 -
c++模拟实现带头循环双向链表
思路:通单链表相似,不过该链表节点包含两个指针域和一个数据域,一个指针域指向前一个,一个指针域指向后一个,其他通单链表相似; test.h #define _CRT_SECURE_NO_WARNINGS 1 // 2、带头双向循环链表增删查改实现 typedef int LTDataType; typedef struct ListNode { LTDataType _data; struct...原创 2020-03-24 21:39:09 · 127 阅读 · 0 评论 -
c++模拟实现单链表
**思路:**单链表属于线性表中的连式结构,逻辑上数连续的,但是物理存储上是不连续的,声明链表节点结构,然后就是指针的运用, test.h #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<iostream> using namespace std; typedef int SLTDataType;...原创 2020-03-24 14:09:02 · 216 阅读 · 0 评论 -
c++实现顺序表
用c++语言模拟实现按顺序表原创 2020-03-23 23:37:06 · 293 阅读 · 0 评论 -
线性表,顺序表,链表,数组的区别与联系
转载:https://www.cnblogs.com/liuhaier/p/10574225.html转载 2020-03-23 18:56:06 · 486 阅读 · 0 评论 -
【数据结构:树】——搜索二叉树-K模型(非递归和递归)
我们在数据结构初期认识到了基础的二叉树,大概对二叉树有了初步的了解。但是二叉树对于我来说却是一个不晓得难点;下面分享一下在学习二叉树的变形二插搜索树的一些经验; 二叉搜索树 二叉搜索树又叫二叉排序树,它或者是一颗空树,或者是一颗具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有的节点的值都小于根节点的值 若它的右子树不为空,则右子树上所有的节点的值都大于根节点的值 它的左右子树也分别...原创 2019-12-09 12:33:54 · 208 阅读 · 0 评论 -
【数据结构:链表】——带头双向循环链表的实现(C语言)
本片接上一篇【数据结构:链表】——无头单向非循环链表的实现(C语言) 1、链表实现 带头双向循环链表: 带头双向循环链表:结构最复杂,一般用在单独存储数据。实际中使用的链表数据结构,都是带头双向 循环链表。另外这个结构虽然结构复杂,但是使用代码实现以后会发现结构会带来很多优势,实现反而 简单了,后面我们代码实现了就知道了。 2、代码实现 从上图我们可以看出双向链表的节点数据结构就有了些许不同...原创 2019-07-28 18:40:08 · 629 阅读 · 0 评论 -
【数据结构:链表】——无头单向非循环链表的实现(C语言)
1、什么是链表? 链表:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。 详细了解: 链表的详解 注: 实际上链表的结构是多样的,总共有8种链表结构。 1.单项、双向 2.带头、不带头 3.循环、不循环 虽然有八种数据结构但是生活中我们常用的结构也就是这两种链表结构:无头单向非循环链表、带头双向循环链表。 无头单向非循环链表:...原创 2019-07-28 16:34:30 · 357 阅读 · 0 评论 -
【数据结构:栈】——栈的实现(C语言)
1、什么是栈? 栈: 一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进LIFO(Last In First Out)的原则。 压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。 出栈:栈的删除操作叫做出栈。出数据也在栈顶。 详细了解:栈的详解 2、栈的实现 栈的实现一般可以使用数组或者链表实现,相对而...原创 2019-07-25 18:08:58 · 186 阅读 · 2 评论 -
【数据结构:队列】——队列的实现(C语言)
1、什么是队列? 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列和出队列。 队尾:进行插入操作的一端 队头:进行删除操作的一端 ...原创 2019-07-25 18:06:35 · 163 阅读 · 0 评论 -
【数据结构:堆】——堆及堆的相关操作(C语言)
1、什么是堆? 堆: 如果有一个关键码的集合K = {k0,k1, k2,…,kn-1},把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,并满足:Ki <= K2i+1 且 Ki<= K2i+2 (Ki >= K2i+1 且 Ki >= K2i+2) i = 0,1,2…,则称为小堆(或大堆)。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根...原创 2019-07-29 18:19:13 · 285 阅读 · 0 评论