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