数据结构
数据结构知识学习
Shadows_城南花已开
so far away
展开
-
数据结构之顺序表
1.什么是线性结构?线性结构是一个有序数据元素的集合。2. 线性结构中都包含什么内容?常见的线性结构有:线性表、栈、队列、双队列、数组、串。3. 什么是顺序表?顺序表的分类?顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删改查。顺序表一般可1.分为静态顺序表:使用定长数组存储。2.动态顺序表:使用动态开辟的数组存储。4.动...原创 2019-04-28 17:07:34 · 139 阅读 · 0 评论 -
数据结构之二叉树
1.树的基本概念树就是n(n>=0)个结点的有限集合T。当n为0时,称为空树。当n>0时,该集合满足如下条件:(1)其中有一个称为根(root)的特定结点,他没有直接前驱,但有零个或多个直接后继。(2)其余n-1个结点可以划分成m个(m>=0)个互不相交的有限集T1,T2,Ti,Tm,其中Ti又是一棵树,称为根的子树。每棵子树的根节点有且只有一个直接前驱,但有零个或多个直接后继...原创 2019-05-21 01:11:12 · 264 阅读 · 0 评论 -
数据结构之单链表
1. 熟悉什么是链表,链表的分类?链表是一种物理存储结构上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表一共分为8种。1.单向、双向。2.带头、不带头。3.循环、不循环。由这几种情况组合而成。常见的是不带头非循环单链表、带头循环双向链表。2. 熟悉链表带头结点和不带头结点的区别?线性表的插入删除需要移动大量的元素,因此引入链表(本文讨论单链表)的概念,...原创 2019-04-30 15:38:29 · 215 阅读 · 0 评论 -
数据结构之链式二叉树
1. 分析顺序存储二叉树的优缺点二叉树的顺序存储,寻找后代节点和祖先节点都非常方便,但对于普通的二叉树,顺序存储浪费大量的存储空间,同样也不利于节点的插入和删除。因此顺序存储一般用于存储完全二叉树。链式存储相对顺序存储节省存储空间,插入删除节点时只需修改指针,但寻找指定节点时很不方便。不过普通的二叉树一般是用链式存储结构。2. 使用孩子表示法实现二叉树的以下操作:typedef char ...原创 2019-05-27 14:22:52 · 381 阅读 · 0 评论 -
数据结构之栈和队列
1. 什么是栈,栈有什么特性?栈(Stack)作为一种限定性线性表,是将线性表的插入和删除操作限制为仅在表的一端进行,通常将表中允许进行插入、删除操作的一端称为栈顶(Top),因此栈顶的当前位置是动态变化的,同时,表的另一端称为栈底(Bottom)。当栈中没有元素时称为空栈。栈的插入操作可以形象的称为入栈或进栈。栈的删除操作称为出栈或退栈。总的来说:栈又称为后进先出(Last In Fir...原创 2019-05-24 00:33:49 · 122 阅读 · 0 评论 -
算法的时间复杂度和空间复杂度总结
如何衡量一个算法的好坏?时间复杂度+空间复杂度什么是时间复杂度?时间复杂度的定义:在计算机科学中,算法的时间复杂度是一个函数,他定量的描述了该算法的运行时间。一个算法执行所耗费的时间,理论上来说是不能算出来的,只有你把程序放在机器上跑起来才能知道。但是这样是很麻烦的。所以才有了时间复杂度。一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。时...原创 2019-04-24 12:08:31 · 545 阅读 · 0 评论 -
数据结构之二叉树顺序存储之堆
顺序结构存储二叉树堆:1. 熟悉堆的概念以及特性如果有一个关键码的集合K = {k0,k1, k2,…,kn-1},把它的所有元素按完全二叉树的顺序存储方式存储,在一个一维数组中,并满足:Ki <= K2i+1 且 Ki<= K2i+2 (Ki >= K2i+1 且 Ki >= K2i+2) i = 0,1,2…,则称为小堆(或大堆)。将根节点最大的堆叫做最大堆或大根堆...原创 2019-05-27 14:37:41 · 229 阅读 · 0 评论