
数据结构与算法--学习
qq_24429333
这个作者很懒,什么都没留下…
展开
-
数据结构与算法--(二)-栈和队列对比总结
栈和队列对比在上一节我们谈到链表的几种特殊形式。链表是线性表的链接存储,我们知道一般线性表示可以在任意位置进行插入删除操作的,今天我们讲两种特殊的线性表结构,一种是仅可以在表尾进行插入和删除的栈-线性表,一种是只允许在一端插入,另外一端删除的线性表–队列。每一种都分别有顺序结构和链接存储定义对比栈和队列的链接存储结构及实现思路,先谈存储结构如何改—如何定义存储结构—操作实现这个就...原创 2019-01-23 19:42:17 · 516 阅读 · 0 评论 -
剑指offer--树类python
题目1:重建二叉树输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路:根节点是前序第一个, 找到根节点在中序序列的位置索引,然后得到左子树和右子树的索引位置,递归调用。# -*- coding:utf-8...原创 2019-03-08 14:48:02 · 254 阅读 · 0 评论 -
数据结构与算法(6)-图的应用
在前面我们谈到了图的定义,图的结构,和图的遍历操作,接下来我们注意谈图的应用,即对于无向图来说,最小生成树,prim和kris算法,对于有向图来说,是最短路径,Dijk单源路径算法和flod算法首先是无向图-----最小生成树定义和性质算法1–prim算法2–kris对于有向图-算法1-单源路径任意两个顶点之间的路径–floyd...原创 2019-01-30 20:15:33 · 327 阅读 · 0 评论 -
数据结构与算法(6)-----图定义,存储和操作
今天我们来讲另外一种非线性结构,图从图的定义,存储,和操作来进行图最开始来源与欧拉问题1.图定义图的存储方法: 邻接矩阵—顺序存储-二维数组邻接表–链接存储十字链表在这里不多说,3.图的搜索接下来是广度优先算法...原创 2019-01-29 21:01:45 · 153 阅读 · 0 评论 -
数据结构与算法(五)---树,森林 ,二叉树
在前面,我们谈到了二叉树的性质,如何遍历二叉树,以及如何将二叉树这种非线性结构存储为线性结构,接下来我们分析放在二叉树的操作是否可以也同样适用于树首先从遍历上来看,无差别接着再看树的存储结构,是如何的,其中,首先是顺序存储链接存储方法树与二叉树的关系森林( 树)与二叉树间的转换根据上面那个表树结构的基本应用哈夫曼树及其应用...原创 2019-01-29 15:59:05 · 199 阅读 · 0 评论 -
数据结构与算法(四)---线索二叉树和堆
线索二叉树—利用上空指针域如果左子树不存在,即指向前驱,若右子树不存在,指向后继原创 2019-01-29 14:44:27 · 144 阅读 · 0 评论 -
数据结构与算法---(二)链表多种形式对比总结
在上一章中,我们对比了顺序表和链表,知道,链表其实是由若干个含结点构成,其结点包括信息域和指针域。形成一个单向链接线性表。类似如下结构而根据单链表结构结合实际问题又延伸出来静态链表,双向链表,循环链表这三种主要链表形式。从定义和数据结构对比2.从基本操作对比(横着顺序)单向循环列表//删除头结点的代码如下:(注意:删除操作的 初始条件 为 该队列 不为空)int ...原创 2019-01-23 17:25:23 · 338 阅读 · 0 评论 -
2019---《数据结构与算法》详解(一)---概论
备战2019—《数据结构与算法》复习详解—参考哈工大精品教程第一章 绪论本章的学习目的主要是对数据结构基础的一些概念解释,包括:基本定义,研究对象,抽象数据型,算法,算法求解。1.1. 数据结构起源数据结构的创始人—Donald. Knuth补充: 属于面向对象的编程有:C++,java , python ,三个基本特征是继承,封装,多态(封装可以隐藏实现细节,使得代码模块化;...原创 2019-01-23 12:34:41 · 869 阅读 · 0 评论 -
数据结构与算法(8)--排序算法
.1 基本概念6.2 冒泡排序6.3 快速排序6.4 直接 选择排序6 6.5 堆排序6.6 (直接) 插入排序6 6.7 希尔排序6.8 (二路)归并排序6.9 基数排序本章将重点介绍多种排序算法1.首先是概念2.冒泡排序3.快速排序,一次移动多个位置的距离4.直接选择排序5.堆排序7.希尔排序8.二路归并排序9.基...原创 2019-02-01 16:06:53 · 180 阅读 · 0 评论 -
数据结构与算法(7)--查找
在前面,我们已经学习到了线性表,树,图等常见的数据结构,而今天我们主要考虑非常常用的一种应用–查找,指在某种数据结构上找出满足给定条件的数据元素, 又称 检索 , 是数据处理中常见的重要操作,我们需要了解不同查找方法,性能分析,适用问题,查找方法: 顺序查找,折半查找,分块查找,二叉查找树,AVL树查找1.查找定义,分类1.线性查找所谓“哨兵”就是用一个特殊值来作为数组的边界,使用...原创 2019-01-31 20:30:54 · 190 阅读 · 0 评论 -
数据结构与算法(三)---二叉树的性质及基本遍历
树最开始的时候,学习数据结构我们需要,数据结构与算法的关系 货物存储–数据结构 运输路线–算法, 它是分为逻辑结构(面向用户)和存储结构(面向计算机),逻辑结构我们知道有线性和非线性结构,在前面的章节中,我们介绍了线性表,接下来将重点介绍逻辑结构中的非线性结构之一—树。本章主要涉及到基本概念性质,操作。具体框架如下1. 概念特点1.1 树的概念和结构特点:构造性定义:直观定义1....原创 2019-01-26 09:35:23 · 504 阅读 · 0 评论 -
python中的单向循环链表实现
所谓单向循环链表,不过是在单向链表的基础上,如响尾蛇般将其首尾相连,也因此有诸多类似之处与务必留心之点。尤其是可能涉及到头尾节点的操作,不可疏忽。对于诸多操所必须的遍历,这时的条件是什么?又应该在哪里停止?在做删除操作时,如若待删除节点是头或尾节点时,该如何处理?如果链表只有一个节点,又该如何处理?代码实现复制代码class Node(object):def init(self, va...原创 2019-01-25 14:38:30 · 222 阅读 · 0 评论 -
数据结构与算法--(二)-多维数组和广义表对比总结
原创 2019-01-23 20:08:38 · 322 阅读 · 0 评论 -
数据结构与算法--(二)-串与模式匹配
在前面,我们讲到了特殊的线性表–栈和队列,其实还有一种特殊的线性表–串,即0或多个字符组成的有限序列。本章从定义,存储结构,操作实现,应用这四个方面来进行阐述顺序存储串补充python实现...原创 2019-01-23 20:00:32 · 158 阅读 · 0 评论