【数据结构】
文章平均质量分 78
_ClivenZ
一只成长中的C/C++菜鸟
展开
-
关于常见的各种链表算法题C++代码实现(希望可以持续更新…)
关于各种常见链表算法C++的代码实现原创 2021-12-07 15:32:32 · 1572 阅读 · 0 评论 -
【数据结构 】顺序表
顺序表是什么顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表 分为 静态顺序表 和 动态顺序表静态顺序表使用长度给定的数组存储数据,结构体如下:typedef struct SeqList{ int array[1024]; int size;} SeqList;动态顺序表动态开辟的数组来存储数据,其大...原创 2019-04-15 22:27:56 · 174 阅读 · 0 评论 -
【数据结构】 - 链表(一)
什么是链表链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。链表的分类链表基本可以分为 8 种不同的链表不带头单链表1、单向、双向2、带头、不带头3、循环、非循环不...原创 2019-04-15 23:21:46 · 90 阅读 · 0 评论 -
【数据结构】链表(二)
链表结构的一些基本实现这里的链表是:单向 - 无头 - 链表定义数类型typedef int SListDataType;定义结点 及 第一个结点//定义结点typedef struct ListNode { SListDataType value; struct ListNode* next;} Node;//定义第一个结点typedef struct SList {...原创 2019-04-19 19:58:45 · 156 阅读 · 0 评论 -
【数据结构】 - 二叉树(一)
树形结构树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树。树形结构的几个基本概念节点的度:一个节点含有的子树的个数称为该节点...原创 2019-04-22 15:44:14 · 154 阅读 · 0 评论 -
【数据结构】 - 二叉树(二)(基本链式结构实现)
二叉树的链式结构二叉树的结构体//定义数据类型typedef char BTDataType;//结构体定义typedef struct BTNode { int value; struct BTNode *left; //左孩子 struct BTNode *right; //右孩子} BTNode;链式结构的遍历(递归实现)前序遍历(Preorder Trav...原创 2019-04-22 15:55:18 · 302 阅读 · 0 评论 -
【数据结构】通俗易懂的快速排序递归及非递归(Hoare版本、挖坑法、前后指针)C++完整代码
快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法。其基本思想为:任取待排序元素序列中 的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有元素均大于基准值,然后最左右子序列重复该过程,直到所有元素都排列在相应位置上为止。如何寻找基准值?一般情况下会选择排序序列的最后一个元素作为基准值,但是如果待排序列的最后一个元素...原创 2019-08-15 23:15:26 · 371 阅读 · 0 评论 -
【算法】动态规划专栏~(常见动态规划题目解析及代码)
动态规划:动态规划是分治思想的延伸,通俗一点来说就是大事化小,小事化无的艺术。 在将大问题化解为小问题的分治过程中,保存对这些小问题已经处理好的结果,并供后面处理更大规模的问题时直接 使用这些结果。动态规划具备了以下三个特点:把原来的问题分解成了几个相似的子问题。 所有的子问题都只需要解决一次。 储存子问题的解。动态规划的本质:是对问题状态的定义和状态转移方程的定...原创 2019-08-28 20:07:21 · 1218 阅读 · 0 评论