数据结构与算法
数据结构与算法
persist_gd
行有不得,反求诸己
展开
-
python构建有序链data struct
类是一种数据类型,当我们不知道怎么定义一个数据类型的时候,那这个时候就一定要想到类充当包裹,类中不仅可以存放数据,也可以把那些方法也放进去直接看代码和注释方便理解# 定义节点,节点存有数据和next指针class Node: def __init__(self,initdata): self.data = initdata self.next = None def getData(self): return self.data d原创 2020-08-21 16:31:41 · 124 阅读 · 0 评论 -
利用栈实现10进制数据向任意进制转换
from pythonds.basic.stack import Stackdef baseConverter(decNumber, base): digits = "0123456789ABCDEF" remstack = Stack() while decNumber > 0: rem = decNumber % base remstack.push(rem) decNumber = decNumber // base原创 2020-08-18 22:43:23 · 541 阅读 · 0 评论 -
python二分查找树(BST)和AVL树
二分查找树是左子节点小于根节点,根节点小于右子节点的树形数据结构,有利于数据的快速定位,该python实现,含有两个类,TreeNode和BinarySearchTree,下面逐行注释代码方便理解class BinarySearchTree: def __init__(self): # 定义根节点 self.root = None # 用于记录树的大小,即树中有多少个node self.size = 0 def pu原创 2020-08-25 20:48:15 · 300 阅读 · 0 评论 -
排序算法汇总
冒泡排序冒泡排序的算法思路在于对无序表进行多趟比较和交换,每趟包括了多次两两相邻元素的比较,并将逆序的数据项互换位置,最终能将本趟的最大项就位,经过n-1趟比较交换,实现表排序def bubbleSort(alist): for passnum in range(len(alist)-1,0,-1): for i in range(passnum): if alist[i]>alist[i+1]: # 置换位置 ..原创 2020-08-23 21:09:04 · 109 阅读 · 0 评论 -
数据结构-树结构的梳理
二叉树遍历(先序DLR,中序LDR,后序LRD)中序遍历能够确定二叉树结构二叉排序树左子树均小于根节点,右子树均大于根节点平衡二叉树平衡是指所有叶子的深度趋于平衡,更广义的是指在树上所有可能查找的均摊复杂度偏低AVL树自平衡的二叉查找树(通过左右旋实现平衡)左右子树都是平衡二叉树右旋:左节点转到根节点左旋:右节点转到根节点红黑树为了提升AVL树的update维护效率引入红黑树节点是红色和黑色根是黑色所有叶子都是黑色每个红色节点必须有两个黑色的子节点原创 2020-08-08 21:47:12 · 188 阅读 · 0 评论