
数据结构
文章平均质量分 88
忽晴忽雨江湖
这个作者很懒,什么都没留下…
展开
-
【数据结构】树的基本理解
一.树的基本概念 1.树型结构是非线性数据结构 2.树(Tree)是N(N>=0)个结点的有限集。在任意一颗非空树中:有且只有一个特殊的结点称为根结点,根结点没有前驱。除根结点外,其余结点被分为M(M>0)个互不相交的集合T1,T2.......Tm,其中每一个集合T(i)(1<=i<=m)又是与树结构类似的 子树。每个树的根结点有且只有一个前驱,但是可以有0个或多...原创 2018-05-24 11:46:55 · 2422 阅读 · 1 评论 -
【数据结构】顺序表和链表的对比
顺序表的基本理解和操作:点击打开链接链表的基本理解和操作:点击打开链接顺序表和链表都是线性表原创 2018-05-24 12:10:25 · 491 阅读 · 0 评论 -
【数据结构】堆的理解和基本操作
一.堆的概念 如果有一个关键码的集合K={k0,k1,k2,.......kn-1},把他所有元素按照完全二叉树的顺序存储方式存储在一个一维数组中,并满足:Ki <= K2*i+1 且 Ki<= K2*i+2 (Ki >= K2*i+1 且 Ki >= K2*i+2) i = 0,1,2…,则称为小堆(或大堆)。小堆:从上图可以看出小堆的特点是:任意一节点的数值都...原创 2018-06-06 17:36:56 · 618 阅读 · 1 评论 -
【数据结构】八大排序之快速排序(递归和非递归方法)
上一博文我们讲了冒泡排序,但是由于他的时间复杂度过高为O(n*n),于是在冒泡排序的基础上今天要说的是快速排序。 本文讲述两个内容:1.快速排序的三种方法。2.快速排序的优化 一.什么是快速排序??? 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递...原创 2018-09-19 21:43:12 · 22578 阅读 · 2 评论 -
【数组结构】二分查找(以及二分查找的变形)
二分查找 二分查找是一个基础的算法,也是面试中常考的一个知识点。二分查找就是将查找的键和子数组的中间键作比较,如果被查找的键小于中间键,就在左子数组继续查找;如果大于中间键,就在右子数组中查找,否则中间键就是要找的元素。时间复杂度为O(log₂n),空间复杂度为O(1) 1.基础的二分查找int BinarySearch(int* arr, int sz,int nu...原创 2018-09-21 22:22:59 · 885 阅读 · 0 评论 -
【数据结构】八大排序之归并排序
一.归并排序的基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。如下图: 1.我们看到在分治的方法中其中重要的一步就是合并两个有序数...原创 2018-09-27 17:16:45 · 418 阅读 · 0 评论 -
【数据结构】八大排序之直接插入排序
一.直接插入排序 直接插入排序(Straight Insertion Sort)是一种最简单的排序方法,其基本操作是将一条记录插入到已排好的有序表中,从而得到一个新的、记录数量增1的有序表1.直接插入排序的基本思想:以数组int arr[] = { 3, 1, 4, 6, 5, 9, 2, 7, 8 }; 为例:1.)我们以第一个数据3为有序数列2.)从第二个开...原创 2018-09-28 19:56:46 · 6095 阅读 · 2 评论 -
【数据结构】有关二叉树的面试题
目录二叉树节点定义1、求二叉树中的节点个数2、求二叉树的深度3、前序遍历,中序遍历,后序遍历4、分层遍历二叉树(按层次从上往下,从左往右) 5、将二叉查找树变为有序的双向链表6、求二叉树第K层的节点个数7、求二叉树中叶子节点的个数 8、判断两棵二叉树是否结构相同 9、 判断二叉树是不是平衡二叉树10、求二叉树的镜像11、求二叉树中两个节点的最低公共祖...转载 2018-10-31 23:28:48 · 501 阅读 · 0 评论 -
【数据结构】二叉树的理解和基本操作
一.二叉树的定义 一棵二叉树是节点的有限集合,该集合或者为空,或者是由一个根节点加上两棵分别称为左子树和右子树的二叉树组成。 (2.) 二叉树的特点: 1.每个节点最多有两棵子树(也就是说二叉树中不存在度大于2的节点) 2.二叉树的子树没有左右之分,其次序不能任意颠倒。 (3.) 二叉树的基本形态: 1...原创 2018-05-28 18:15:07 · 1036 阅读 · 1 评论 -
【数据结构】二叉搜索树的认识和基本操作
一.线索化概念原创 2018-06-03 20:37:14 · 332 阅读 · 0 评论 -
【数据结构】无头单链表的基本操作和理解
单链表:一种链式存储的线性表,用一组地址任意的存储单元存放线性表的数据元素,称存储单元为一个节点。(每个结点中只包含一个指针域)链式的存储结构的特点:用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)单链表的结构: 1.对于任意一个数据元素a(i)来说,储存本身的数据.(这个域叫数据域) 2.存储一个下一个(后继)数据元素...原创 2018-05-22 22:31:50 · 3009 阅读 · 0 评论 -
【数据结构】动态顺序表
seqlist.h#pragma once #include#include#includetypedef int DataType;typedef struct SeqList{ DataType* array; //数据块指针 size_t size; //当前有效数据个数 size_t capacity; //容原创 2018-04-19 12:39:59 · 459 阅读 · 0 评论 -
【数据结构】简单不带环迷宫的实现(用栈实现)
一.用栈来实现简单的迷宫1. 迷宫:回溯法:对一个包括有很多个结点,每个结点有若干个搜索分支的问 题,把原问题分解为若干个子问题求解的算法;当搜索到某个结点发 现无法再继续搜索下去时,就让搜索过程回溯(回退)到该节点的前一 个结点,继续搜索该节点外的其他尚未搜索的分支;如果发现该结点 无法再搜索下去,就让搜索过程回溯到这个结点的前一结点继续这样 的搜索过程;这样的搜索过程一直进行到搜索到问题的...原创 2018-05-03 17:27:25 · 2573 阅读 · 0 评论 -
【数据结构】栈的简单理解以及对栈的基本操作
一.静态栈的简单操作先来简单的了解一下栈1.栈:一种特殊的线性表,其实只允许在固定的一端进行插入或删除操作。进行数据插入和删除的一端称为栈顶,另一端称为栈底。不含任何元素的栈称为空栈,栈又称为后进先出的线性表。特性栈:后进先出(LILO)特殊线性表栈功能:将数据从一种序列改变为另一种序列2.顺序栈和顺序表数据成员相同,不同之处:顺序栈的入栈和出栈操作只允许对当前栈顶进行操作!顺序栈所有的的操作时间...原创 2018-04-26 13:04:48 · 22905 阅读 · 3 评论 -
【数据结构】队列的基本认识和队列的基本操作
一.队列的概念队列是一种先进先出的线性表(栈是先进后出)。它只允许在表的一端进行插入,或者删除元素。 进入插入操作的一端称为队尾(rear)(入队列) 进行删除操作的一端称为对头(front)(出队列) 队列具有先进先出的(FIFO)的特性二.顺序队列 1.队头不动,出队列时队头后的所有元素向前移动 缺陷:操作时如果是出队列比较多,需要大量搬移元素队头不动---->大量搬移元素----...原创 2018-05-13 20:42:13 · 2388 阅读 · 1 评论 -
【数据结构】循环队列的认识和基本操作
队列的基本认识:点击打开链接一.循环队列概念:解决“假溢出”的办法就是后边满了,再继续从头开始,这就形成了一个环。将头指针和尾指针连在一起的顺序存储结构就是循环队列。循环队列初始条件:队头指针(front)=队尾指针(rear)=0 循环队列队满条件:(rear+1)%size == front (size是顺序表的最大储存空间) 循环队列空条件:队头指针(rear)=队尾指针(fr...原创 2018-05-14 18:39:49 · 968 阅读 · 1 评论 -
【数据结构】栈与队列的面试题(二)
一.使用两个队列实现(实现栈先进后出的特点) 思路: 1.创建两个队列的结构体,并将这俩个队列(Queue1和Queue2)的结构体封装到一个结构体里。 2.入栈:判断哪个队列中为空(Queue1和Queue2)就入哪个队列。 3.出栈:判断任意一个队列(Queue1和Queue2)中如果Queue1或者Q...原创 2018-05-21 18:30:16 · 352 阅读 · 1 评论 -
【数据结构】简单的迷宫(用递归实现)
动态栈的实现:https://blog.youkuaiyun.com/alidada_blog/article/details/80243376 对递归的简单了解:https://blog.youkuaiyun.com/alidada_blog/article/details/80218790 Maze.h#pragma once #include"stack.h"#include <assert.h&g...原创 2018-05-08 18:08:33 · 2089 阅读 · 0 评论 -
【数据结构】重温数据结构:理解 B 树、B+ 树特点及使用场景
链接:https://blog.youkuaiyun.com/u011240877/article/details/80490663转载 2019-08-18 16:42:03 · 412 阅读 · 0 评论