数据结构
ppsppy
路要一步一步走,饭要一口一口吃
展开
-
Python数据结构:堆栈——老鼠走迷宫
问题:有一只老鼠被困在迷宫之中了,我们需要实现一个算法,帮助老鼠走出迷宫。已知迷宫矩阵为:MAZE=[[1,1,1,1,1,1,1,1,1,1,1,1],\ [1,0,0,0,1,1,1,1,1,1,1,1],\ [1,1,1,0,1,1,0,0,0,0,1,1],\ [1,1,1,0,1,1,0,1,1,0,1,1],\ [1,1,1,0,0,...原创 2019-01-13 00:12:11 · 1937 阅读 · 1 评论 -
Python数据结构之链表
链表链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。相比于线性表顺序结构,操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但...原创 2019-03-10 23:35:40 · 279 阅读 · 0 评论 -
Python数据结构:堆栈与队列
堆栈在堆栈这种数据结构中,数据的存取会服“先进后出”原则。生活中最常见的例子就是打开抽屉,假如有一排抽屉我们需要一一打开检查,我们会从下往上打开抽屉,再从上往下关闭——“先进后出”,先打开的抽屉最后再关闭。再比如和人下棋,发现自己下错了,需要悔棋,执行的也是堆栈操作。堆栈有两种常见的实现方式:列表和链表。用列表实现堆栈top指定堆栈最上层元素。每当压入数据时,top+=1每当弹出数...原创 2019-03-16 19:30:50 · 310 阅读 · 0 评论 -
Python数据结构:图形结构
本章主要内容:图的四种表示方法:邻接矩阵法,邻接链表法,邻接复合链表法,索引表格法图的遍历:DFS(堆栈+递归),BFS(队列+递归)生成树:DFS生成树,BFS生成树,最小生成树(求整个图的最短加权路径)(Kruskal算法:森林->树,Prim算法:树+节点)图的最短路径:点到点的最短路径(Dijkstra、Prim、Floyd)AOV网络与拓扑排序AOE网络欧拉环...原创 2019-03-21 15:38:10 · 890 阅读 · 0 评论 -
Python数据结构:排序
简单排序:冒泡(交换)排序、选择排序、插入排序、希尔排序复杂排序:快速排序、堆积排序、基数排序合并排序:合并两个或多个排好序的线性表稳定排序与不稳定排序:稳定排序是指一串数字,进过排列以后,同样大小的元素保持原有的顺序。不稳定排序就是说,排序后,同样大小的元素的顺序可能发生改变。例如:排序前有两个数大小为5,分别叫它们515_151和525_252,排序前515_151...原创 2019-03-22 09:59:20 · 248 阅读 · 0 评论 -
Python数据结构:查找
常见查找方法:顺序查找二分查找插值查找斐波那契查找哈希查找法顺序查找法:一项一项依此查找时间复杂度:最好情况O(1)O(1)O(1),平均情况O(n)O(n)O(n),最坏情况O(n)O(n)O(n)。二分查找法:将数据分为分成两等份,比较键值与中间值的大小,根据结果查找前半段或者后半段。时间复杂度:O(log(n))O(log(n))O(log(n))插值查找法:根...原创 2019-03-22 10:34:23 · 329 阅读 · 0 评论 -
Python数据结构总结
链表:单向链表、双向链表、循环链表https://blog.csdn.net/LiQingBB/article/details/88386264堆栈:堆栈的实现(列表、链表)加入、删除、遍历https://blog.csdn.net/LiQingBB/article/details/88603961队列:队列的实现(列表、链表)加入、删除、遍历https://blog.csdn...原创 2019-03-22 11:38:57 · 330 阅读 · 0 评论 -
Python数据结构:树形结构
树由一个根节点和子节点组成的结构。子节点个数可以为0。若每个根节点z最多有可以有nnn个子节点,那么它就叫做nnn叉树。二叉树为什么使用二叉树一般树形结构在计算机中的存储方式是以链表为主。假设一个nnn叉树,共有mmm个节点(根节点加上子节点)。那么它们一共会有mnmnmn个链接。但是实际上只会用到m−1m-1m−1个链接。空置的链接数为m(n−1)+1m(n-1)+1m(n−1...原创 2019-03-18 21:04:44 · 2036 阅读 · 0 评论