数据结构
nian_ignite
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
时间复杂度和空间复杂度
如何衡量一个算法的好坏? 两个参考点:1.时间复杂度 2.空间复杂度 什么是时间复杂度? 定义; 在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间.一个算法所花费的时间和其中语句的执行次数成正比.算法中的基本操作的执行次数,为算法的时间复杂度. 递归的总次数*每次递归的数量 时间复杂度为什么不使用时间来衡量而使用基本语句的运行次数来衡量? 算法的执行时间依赖于...原创 2019-04-22 18:52:30 · 172 阅读 · 0 评论 -
链表之单链表
什么是链表?链表的分类? 链表是一种物理存储结构上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的. 分类: 单向, 双向 不带头单链表, 带头单链表 单链表, 循环单链表 带头结点和不带头结点的区别 带头结点: head->p1->p2->p3 不带头结点: p1->p2->p3 带头结点单链表实现 SList.h ...原创 2019-05-02 00:15:44 · 155 阅读 · 0 评论 -
线性结构之顺序表
什么是线性结构? 线性结构是一个有序元素的集结 常见的线性结构: 线性表,栈,队列,双队列,数组,串 常见的非线性结构: 二维数组,多维数组, 广义表,树 什么是顺序表?顺序表的分类? 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储 可以分为 1. 静态顺序表: 使用定长数组存储 2. 动态顺序表: 使用动态开辟的数组存储 动态顺序表 ...原创 2019-04-24 23:30:33 · 225 阅读 · 0 评论 -
链表之双向链表
头文件DList.h #pragma once typedef int DLDataType; typedef struct DListNode { struct DListNode *_pNext; struct DListNode *_pPre; DLDataType _data; }DLNode, *PDLNode; void DListInit(PDLNode *pHead...原创 2019-05-21 16:27:42 · 156 阅读 · 0 评论 -
栈和队列
栈 栈: 一种特殊的线性表,其只允许在固定的一端插入和删除元素. 进行数据插入和删除操作的一端称为栈顶. 另一端称为栈底. 栈中的数据元素遵守先进后出LIFO原则. 压栈: 栈的插入操作叫做进栈/压栈/入栈, 入数据在栈顶 出栈: 栈的删除操作叫出栈, 出数据叶子栈顶 栈的实现 头文件Stack.h #pragma once typedef int STDataType; type...原创 2019-05-21 23:41:01 · 222 阅读 · 0 评论 -
树以及二叉树
树 概念 树是一种非线性的数据结构, 它是由n(n>=0)个有限结点组成一个具有层次关系的集合. 把它叫做树是因为它看起来像一棵倒挂的树, 也就是说它是根朝下, 而叶朝上的. 树的特点 每个结点有零个或多个子节点 没有父节点的结点称为根节点 每个非根节点有且只有一个父节点 除了根节点外, 每个子节点可以分为多个不相交的子树 节点的度: 一个节点含有的子树的个数称为该节点的度...原创 2019-05-25 21:03:25 · 164 阅读 · 0 评论 -
堆的实现
头文件Heap.h #pragma once typedef int HPDataType; typedef int(*PCOM)(HPDataType, HPDataType); int Less(HPDataType left, HPDataType right); int Greater(HPDataType left, HPDataType right); typedef stru...原创 2019-05-28 12:25:43 · 183 阅读 · 0 评论
分享