数据结构与算法
自己的相关笔记
Teeyohuang
数据挖掘工程师(菜鸡)
展开
-
0-数据结构与算法链接目录
0-数据结构与算法链接目录对我自己写的数据结构与算法这一部分的博文做一个目录,方便查询下面的文字直接点击就可跳转到目标博文页面:1-数据结构和算法简介2-1 线性表之顺序表 及其C语言实现2-2 线性表之链表 及其C++实现2-3 线性表之静态链表 及3其 C++实现2-4 线性表之双链表2-5 线性表之循环链表2-6 链表逆序2-7 顺序表 和 链表 ...原创 2019-06-25 09:44:01 · 310 阅读 · 0 评论 -
1-数据结构和算法简介
更多系列博文请点击:0-数据结构与算法链接目录一、数据结构数据结构是讨论计算机系统中 数据的组织形式 及其相互关系。数据:客观事物采用计算机进行识别、存储和加工所进行的描述结构:事物间的相互关系和约束数据结构的基本单元是数据元素数据结构的3个层次:①数据的逻辑机构; ②数据的存储结构; ③数据的运算( 操作集合)①逻辑结构:●线性结构:有且仅有一个开始元...原创 2019-06-17 23:10:43 · 247 阅读 · 0 评论 -
2-1 线性表之顺序表 及其C语言实现
更多系列博文请点击:0-数据结构与算法链接目录2-1 线性表之顺序表0、数据结构大致包含以下几种存储结构:线性表:还可细分为顺序表、链表、栈和队列;树结构:包括普通树,二叉树,线索二叉树等;图存储结构;1、线性表线性表,全名为线性存储结构。 是由n个相同类型的元素 所构成的 有限线性序列。线性表主要的基本操作有以下几种:①Initiate(L...原创 2019-06-18 10:37:26 · 450 阅读 · 0 评论 -
2-2 线性表之链表 及其C++实现
更多系列博文请点击:0-数据结构与算法链接目录2-2 线性表之链表 及其C++实现采用顺序存储结构的顺序表,其数据元素是用一组地址连续的存储单元来依次存放的,无须为表示数据元素之间的逻辑关系而增加额外的存储空间,其逻辑关系蕴含在存储单元的邻接关系中,并且可以方便地随机存取表中的任一元素,但是从它的插入和删除算法可以看出,顺序表的效率较低,需要大量的数据元素的移位。同时,数据元素最大...原创 2019-06-18 22:44:42 · 1079 阅读 · 0 评论 -
2-3 线性表之静态链表 及3其 C++实现
更多系列博文请点击:0-数据结构与算法链接目录2-3 线性表之静态链表1、基本定义静态链表,也是线性存储结构的一种,它兼顾了顺序表和链表的优点。静态链表,仍需要预先分配一个较大的空间,但是在作为线性表的插入和删除操作时不需要移动元素,仅仅需修改指针,故仍具有链式存储结构的主要优点。静态链表使用数组来存储数据(和顺序表一样),但是存储位置是随机的,数据之间“一对一的逻辑关...原创 2019-06-21 01:13:45 · 435 阅读 · 0 评论 -
2-4 线性表之双链表
更多系列博文请点击:0-数据结构与算法链接目录2-4 线性表之双链表双向链表除了相当于在单链表的基础上,每个结点多了一个指针域prior,用于存储其直接前驱的地址。同时保留有next,用于存储其直接后继的地址。所以对于带头结点的双链表,其实很多操作都和 带头结点的单链表是一样的,因为你完全可以忽视掉它有个 prior指针,这样就可以当做单链表来使用。所以,这里只...原创 2019-06-21 17:05:19 · 450 阅读 · 0 评论 -
2-5 线性表之循环链表
更多系列博文请点击:0-数据结构与算法链接目录2-5 线性表之循环链表循环链表就是链表首尾相接连成一个环,可以用单链表 和 循环链表来实现。下面分别来看两种情况:1、使用单链表构建循环链表为了方便,我这里使用带头结点的单链表来构建循环链表,至于单链表带不带头结点的异同,我在前面的线性表之链表那篇文章中已经做过分析,就不再赘述。单向循环链表是指在单链表的基础上,表的最...原创 2019-06-21 17:18:38 · 368 阅读 · 0 评论 -
2-6 链表逆序及其C++实现
更多系列博文请点击:0-数据结构与算法链接目录2-6 链表逆序我只介绍两种常用方法吧,非递归方法 和 递归 方法 我觉得够用就行1、非递归方法:将第二个元素后面的元素依次插入到头结点后面,最后再把原始第一个元素放到原始第二个元素后面,整个链表就能够反转了这个方法对于带不带头结点的链表都适用:①不带头结点原始链表,其中第二个元素是 BA ->...原创 2019-06-21 20:36:19 · 850 阅读 · 0 评论 -
2-7 顺序表 和 链表 对比
2-7 顺序表 和 链表 对比1、存储结构的不同虽然它们同属于线性表,但数据的存储结构有本质的不同:顺序表存储数据,需预先申请一整块足够大的存储空间,然后将数据按照次序逐一存储,逻辑关系就是靠元素间物理空间上的邻接关系来维持链表 ,什么时候存储数据,什么时候才申请存储空间,数据之间的逻辑关系依靠每个数据元素携带的指针维持,2、空间利用率顺序表的空间利用率显然要...原创 2019-06-21 21:45:33 · 588 阅读 · 0 评论 -
3-1 栈 及其 C++实现
3-1 栈1、基本概念栈是限制仅在表的一端进行插入和删除操作的线性表。通常称插入、删除的这一端为 栈顶, 另一端称为栈底。当表中没有元素时称为空栈。由于栈中元素的插入和删除操作都只能在栈顶进行,所以总是后进栈的先出栈。(LIFO) Last In First Out. 后进先出栈的基本操作有五种:①init(),将栈S初始化为空②empty() 判空栈,判断...原创 2019-06-21 22:57:03 · 379 阅读 · 0 评论 -
3-2 队列
3-2 队列1、基本概念队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行删除操作的端称为队头 ,进行插入操作的端称为队尾。FIFO (First In First Out) 先进先出队列的基本操作:①init() 置空,将队列Q初始化为空;②empty...原创 2019-06-22 14:19:29 · 278 阅读 · 0 评论 -
4 串
4 串1.定义数据结构中,字符串要单独用一种存储结构来存储,称为串存储结构。这里的串指的就是字符串。严格意义上讲,串存储结构也是一种线性存储结构,因为字符串中的字符之间也具有"一对一"的逻辑关系。只不过,与之前所学的线性存储结构不同,串结构只用于存储字符类型的数据。2.一些特殊的串①空串:存储 0 个字符的串,例如 S = ""(双引号紧挨着);②空格串:只包含空...原创 2019-06-22 14:44:59 · 457 阅读 · 0 评论 -
5-数组
5-数组数组其实是比较熟悉的一种数据类型,但其实数组本身也是一种数据结构。前面 讨论的线性表结构的顺序存储结构都是借用一维数组来实现的,一维数组是一种顺序表结构,多维数组是一种特殊的线性结构,是线性表的推广。数组是用于储存多个相同类型数据的集合。1.数组的顺序存储结构由于数组可以是多维的,而顺序存储结构是一维的,因此数组中数据的存储要制定一个先后次序。通常,数...原创 2019-06-24 10:37:10 · 477 阅读 · 0 评论 -
7-1 树结构 和 二叉树
7-1 树结构 和 二叉树前面讲的都是 线性存储结构,而树是一种典型的非线性存储结构,一个元素可以有多个直接后继元素。1.一些术语①叶子:没有后继节点的 结点称为叶子节点;②分支节点: 非叶子节点;③节点的度: 直接后继节点的数目;④子节点: 某一个节点的直接后继节点;⑤父节点:某个子节点的直接前驱节点;⑦兄弟:具有同一父节点的 一群节点;⑧节点的层次: 根...原创 2019-06-24 11:17:54 · 625 阅读 · 0 评论 -
7-2 其余的一些树-排序二叉树-霍夫曼树
7-2 其余的一些树1、二叉排序树二叉排序树可以通过递归的方法来定义,它或者是空二叉树,或者是具有如下定义的二叉树:左子树上所有节点的关键字均小于根节点的关键字;右子树上所有节点的关键字均大于等于根节点的关键字。左子树和右子树本身又各是一颗二叉排序树。二叉排序树的生成从二叉排序树的定义中可以得出一个重要性质:按中序遍历该树所得的中序序列是一个递增有序列!因此...原创 2019-06-24 11:50:24 · 534 阅读 · 0 评论 -
8-1 图结构
8-1 图结构1、图结构前面已经讲了 "一对一" 的线性存储结构、"一对多"的树结构 , 现在介绍 "多对多" 的图结构图G由两个集合 V和E 组成, 记为G=( V, E) , 其中 V是顶点(vertex)的有穷 非空 集合,E是指边(edge)的有穷集合。图存储结构可细分两种表现类型,无向图 和 有向图。若图G的边没有表示方向,则就称为无向图,这样的边用圆括号表...原创 2019-06-25 20:03:28 · 647 阅读 · 0 评论 -
8-2 图的存储结构
8-2 图的存储结构1.邻接矩阵(顺序存储结构)图结构的元素之间虽然具有“多对多”的关系,但是同样可以采用顺序存储,即使用数组有效地存储图。集合V中所有的顶点可以利用一个一维数组存储;而集合E中所有的边可以用一个二维数组来存储,此二维数组就称为 邻接矩阵!设G=(V, E)是有n个(n>=1)顶点的有向图,则G的邻接矩阵是具有如下性质的 n x n 矩阵:...原创 2019-06-25 20:35:58 · 464 阅读 · 0 评论