python数据结构
Jasminexjf
learning
展开
-
图解数据结构-使用python(附录A 和附录B)
附录A:python语言快速入门A.1 轻松学python程序用过python的请忽略A.2 基本数据处理数据处理的基本对象是变量、常数。变量的值是可变的;但常数是固定不变的数据。注意命名规则:由数字、字母、下划线构成,但不能以数字开头,不能使用python自带的33个保留字作为变量名。具体保留字信息请看我的另一篇博客。1. 变量名称 = 变数值2.如果要让多个变量同时具有...原创 2019-04-08 17:19:13 · 1603 阅读 · 0 评论 -
数据结构--python 第九章 查找
看了这么久的数据结构,今天终于来到了最后一个章节的总结,虽然前面有两章(树形结构和图形结构)还没有写总结,因为没怎么理解,需要再看一遍之后再写总结。好了,言归正传,下面介绍数据结构中的最后一章的内容:查找9.1 常见的查找方法:内部查找与外部查找静态查找和动态查找顺序查找、二分法查找、插值查找法、斐波那契查找法、哈希查找法9.2 哈希查找法9.3 常见的哈希函数除留余数...原创 2019-04-19 15:18:02 · 575 阅读 · 0 评论 -
用数组array实现栈、队列与用链表linked_list实现栈、队列及相应的应用基于python语言(from Goodrich)
Date:2019-07-07本博客是基于Goodrich的数据结构与算法python语言实现数据的第五章、第六章、第七章的总结:下面是原始数据中第五章、第六章、第七章的目录:第五章-基于数组的序列5.1 python序列类型5.2 低层次数组(5.2.1 引用数组 5.2.2 python中的紧凑数组)5.3 动态数组和摊销(5.3.1 实现动态数组 5.3.2 动态...原创 2019-07-07 21:49:39 · 568 阅读 · 0 评论 -
第四章 递归 python实现 ( 数据结构与算法 from Goodrich)
算法设计的递归方法的主要优点在于:它能使我们能够简洁地利用重复结构呈现诸多问题。通过使算法描述以递归的方式利用重复结构,我们经常可以避开复杂的案例分析和嵌套循环。这种方法会得出可读性更强的算法描述,而且十分有效。一般而言,描述迭代的一种方法是使用循环(如while循环和for循环),另外一种比较常用的迭代实现方法是递归。递归是一种技术,这种技术通过一个函数在执行过程中一次或者多次调用其本身,或...原创 2019-07-02 21:38:06 · 695 阅读 · 0 评论 -
第12章 排序与选择 的基本知识及python实现
Date:2019-07-13目录:12.1 为什么要学习排序算法12.2 归并排序(12.2.1 分治法 12.2.2 基于数组的归并排序的实现 12.2.3 归并排序的运行时间 12.2.5 归并排序的可选实现)12.3 快速排序 (12.3.1 随机快速排序 12.3.2 快速排序的额外优化 )12.4 再论排序:算法视角(12.4.1 排序下界 12.4.2 线性时间排...原创 2019-07-13 18:46:11 · 243 阅读 · 0 评论 -
第11章 搜索树 基本知识及python实现
Date: 2019-07-13目录:11.1 二叉搜索树(11.1.1 遍历二叉搜索树 11.1.2 搜索 11.1.3 插入和删除 11.1.4 python实现 11.1.5 二叉搜索树的性能 )11.2 平衡搜索树 平衡搜索树的python框架(平衡操作的钩子 旋转和重组的非公开方法 创建树节点工厂)11.3 AVL树 AVL树的定义 高度平衡属性 (11.3.1 ...原创 2019-07-13 21:44:46 · 451 阅读 · 0 评论 -
第八章 树的基本概念、二叉树、树的实现、树的遍历算法的基本知识及python实现(from Goodrich)
Date: 2019-07-08Author:目录:8.1树的基本概念(8.1.1 树的定义和属性 8.1.2 树的抽象数据类型 8.1.3 计算深度和高度)8.2 二叉树(8.2.1 二叉树的抽象数据类型 8.2.2 二叉树的属性)8.3 树的实现(8.3.1 二叉树的链式存储结构 8.3.2 基于数组表示的二叉树 8.3.3 一般树的链式存储结构)8.4 树的遍历算法(...原创 2019-07-10 11:15:10 · 362 阅读 · 0 评论 -
数据结构-python—第一章:数据结构导论
1.1 数据结构的定义1.2算法1.3 认识程序设计1.4 算法性能分析对于一个有志于从事信息技部门(IT)领域的人员来说,数据结构是一门和计算机硬件与软件密切相关的学科,他的研究重点是在计算机的程序设计领域中探讨如何在计算机中组织和存储数据并进行高效的运用,涉及的内容包含算法、数据存储结构、排序、查找、程序设计概念、哈希函数。我们可以将数据结构看成是在数据处理过程中的一...原创 2019-04-12 08:16:34 · 246 阅读 · 0 评论 -
第九章 优先级队的基本知识及Python实现(from Goodrich)
Date: 2019-07-11在回顾优先级队列的知识之前,先总结一下自己对于数据结构和抽象数据类型ADT的理解,之前一直不太懂。一、数据结构1、定义:数据结构指的是数据之间的相互关系,即数据的组织形式.(数据的逻辑结构(线性/非线性)+数据的存储结构(顺序存储+链接存储+索引存储+关键字存储)+数据的运算(检索、插入、删除、更新、排序等运算))2、4种基本数据结构:集合、线性结构...原创 2019-07-11 20:24:31 · 451 阅读 · 2 评论 -
数据结构--python 第八章 排序
随着信息科技的普及与全球国际化的影响,企业拥有的数据量成倍数地增长。无论是庞大的商业应用软件,还是个人的文字处理软件,每项工作的核心都与数据库有莫大的关系,而数据库中最常见且重要的功能就是排序和查找。排序(sorting)是指将一组数组按照特定的规则调换位置,使得数据具有某种顺序关系(递增或递减)。例如数据库内可针对某一字段进行排序,而此字段被称为键(key),字段里的值就被称为键值(key ...原创 2019-04-18 21:09:54 · 775 阅读 · 0 评论 -
数据结构--python 第五章 队列
5.1 认识队列队列的基本操作 用数组实现队列 用链表实现队列5.2 队列的应用环形队列 -- 双向队列 -- 优先队列队列是一种“先进先出(First In First Out,FIFO)”的数据结构,和堆栈一样都是一种有序线性表的抽象数据类型(ADT)。就好比乘坐高铁时买票的队伍,先到的人当然可以先买票,买完后就从前端离去准备进入站台。5.1 认识队列队列...原创 2019-04-14 21:28:52 · 504 阅读 · 0 评论 -
数据结构--python 第四章堆栈
4.1 堆栈简介用列表实现堆栈用链表实现堆栈4.2 堆栈的应用递归算法汉诺塔算法老鼠走迷宫八皇后问题(N皇后问题)4.3 算术表达式的表示法中序转前序,中序转后序前序转中序,后序转中序(有括号法和堆栈法)前序、中序、后序的求值运算堆栈(Stack)是一组相同数据类型的组合,具有“后进先出(Last In fFirst Out),LIFO”的特性,所...原创 2019-04-14 17:21:31 · 1081 阅读 · 0 评论 -
数据结构-python—第二章:数组结构
2.1 线性表的简介2.2 认识数组2.3 矩阵2.4 数组与多项式线性表(Linear List)是数学应用在计算机学科中的一种相当简单与基本的数据结构。简单的说,线性表是n个元素的有序序列(n>=0)。线性表的应用在计算机学科中相当广泛,例如本章中将要介绍的数组结构(Array)就是一种典型的线性表的应用。2.1 线性表的简介线性表的关系可以看成一种有序对的集合,...原创 2019-04-12 10:08:02 · 1136 阅读 · 0 评论 -
20190403微软面试-虐惨
首先第一轮面试:自我介绍+项目介绍+实习的任务代码:现有一个全排列A,根据B[0] = 0,B[i] = A[B[i-1]]的方式构造B;并判断B是否是一个全排列?方法一:直接先遍历生成B,再set(B);先判断len(B) < len(A)成立与否,如果成立,直接返回False.如果不成立,就遍历B中元素是否都在A 中,如果不在的话,返回False;如果在的话,到最后返回tru...原创 2019-04-05 08:53:04 · 486 阅读 · 0 评论 -
20190401数据结构与算法1第一章:python入门
1.1 python概述python是一种解释性语言。通常在被称为python解释器的软件中运行,相应的.py文件被称为脚本或源代码。代码通常是一条命令在一行,但是也可以使一行命令在多行,这就需要反斜杠(\)等来进行多行代表一条命令的标识。(#)表示注释1.2 python对象1.2.1 赋值语句:例如,下面的语句就是将float(98.6)赋值给temperature(标识符),...原创 2019-04-02 14:46:24 · 553 阅读 · 0 评论 -
七种经典的排序算法
原文:http://wuchong.me/blog/2014/02/09/algorithm-sort-summary/经典排序算法在面试中占有很大的比重,也是基础,为了未雨绸缪,在寒假里整理并用Python实现了七大经典排序算法,包括冒泡排序,插入排序,选择排序,希尔排序,归并排序,快速排序,堆排序。希望能帮助到有需要的同学。之所以用Python实现,主要是因为它更接近伪代码,能用更少的代码...转载 2019-03-28 12:26:13 · 207 阅读 · 0 评论 -
数据结构之数组和链表的区别
第一题便是数据结构中的数组和链表的区别数组(Array)一、数组特点:所谓数组,就是相同数据类型的元素按一定顺序排列的集合;数组的存储区间是连续的,占用内存比较大,故空间复杂的很大。但数组的二分查找时间复杂度小,都是O(1);数组的特点是:查询简单,增加和删除困难;1.1 在内存中,数组是一块连续的区域1.2 数组需要预留空间 在使用前需要提前申请所占内存的大小,...原创 2019-03-27 19:03:59 · 46567 阅读 · 10 评论 -
数据结构-python第三章:链表之单向链表
链表(linked List)是由许多相同数据类型的数据项按特定顺序排列而成的线性表。链表的特性是其各个数据项在计算机内存中的位置是不连续且随机的,“动态数据结构,动态分配空间”。优点:数据的插入和删除都相当方便,有新的数据加入就向系统申请一块内存空间,而数据被删除之后,就可以把这块内存空间还给系统,加入和删除都不需要移动大量的数据(但是静态数据线性结构的数组的插入和删除需要移动大量的数据)。...原创 2019-04-12 17:22:33 · 754 阅读 · 0 评论 -
数据结构--python第三章 链表之环形链表
在单向链表中,维持链表头指针是相当重要的事情,因为单向链表是由方向的,所以如果链表头指针被破坏或者遗失,整个链表就会遗失,并且会浪费真整个内链表的内存空间。如果我们把链表的最后一个节点指针指向链表头部,而不是指向None,那么整个链表就成为了一个单方向的环形结构。3.2.1 环形链表的建立与遍历简单来说,环形链表(Circular Linked List)的特点就是在环形链表中的任...原创 2019-04-12 19:02:23 · 644 阅读 · 0 评论 -
数据结构--python第三章链表之双向链表
前面已经总结过了链表中的单向链表、环形链表,接下来我们继续谈谈链表中的另一种之双向链表。单向链表和环形链表都属于拥有方向性的链表,只能单向遍历,万一不幸其中有一个链表断裂,那么后面的链表数据便会遗失而无法复原。因此我们可以将两个不同方向的链表结合起来,除了存放数据的字段,他还有两个指针变量,其中一个指针指向后面的节点,另一个指针则指向前面的节点,这样的链表被称为双向链表(Double Link...原创 2019-04-12 19:59:05 · 438 阅读 · 0 评论 -
第十章 映射、哈希表和跳跃表的基本知识及python实现(from Goodrich)
Date: 2019-7-11目录:10.1 映射和字典(10.1.1 映射的抽象数据类型 10.1.2 应用:单词频率统计 10.1.3 python的MutableMapping抽象基类 10.1.4 我们的MapBase基类 10.1.5 简单的非有序映射实现)10.2 哈希表(10.2.1 哈希函数 10.2.2 哈希码 10.2.3 压缩函数 10.2.4 冲突处理方案...原创 2019-07-12 10:31:32 · 800 阅读 · 0 评论