随笔分类 - 数据结构
摘要:链表反转 #!/usr/bin/env python # -*- coding: utf-8 -*- # @File : ReverseSingleLinkImpl.py class Node: data = 0 next = None def build_single_link_list(node
阅读全文
摘要:栈的Python实现 栈可以用顺序表方式实现,也可以用链表方式实现。我大Python的内建数据结构太强大,可以用list直接实现栈,简单快捷。人生苦短,我用Python。代码如下: class Stack(object): # 初始化栈为空列表 def __init__(self): self.it
阅读全文
摘要:# 针对有序查找表的二分查找算法 # 时间复杂度O(log(n)) def binary_search(lis, key): low = 0 high = len(lis) - 1 time = 0 while low < high: time += 1 mid = int((low + high)
阅读全文
摘要:最长公共子串 def longSubStr(str1,str2): len1 = len(str1) len2 = len(str2) longest,start1,start2 = 0,0,0 c = [[0 for i in range(len2+1)]for i in range(len1+1
阅读全文
摘要:1、数组和链表的区别。 从逻辑结构上来看,数组必须实现定于固定的长度,不能适应数据动态增减的情况,即数组的大小一旦定义就不能改变。当数据增加是,可能超过原先定义的元素的个数;当数据减少时,造成内存浪费;链表动态进行存储分配,可以适应数据动态地增减的情况,且可以方便地插入、删除数据项。 从内存存储的角
阅读全文
摘要:二叉树的遍历分深度优先遍历(DFS)和宽度优先遍历(BFS)。其中深度优先遍历又分为先序遍历,中序遍历,后序遍历。因为二叉树是递归类数据结构,因此大部分关于二叉树的操作都可以通过递归实现。下面将介绍二叉树几种遍历的实现代码以及思路。 二叉树结点定义: class Node: def __init__
阅读全文
摘要:一.冒泡排序 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 def bub
阅读全文
摘要:红黑树是一种自平衡的二叉查找树。 1.每个结点是红色或者黑色的。 2、根结点是黑色的。 3、每个空结点(NULL/NIL)是黑色的。(这里将空结点作为一个特殊的结点对待,设定他们必须是黑色的。) 4、如果一个结点是红色的,则它的左右子结点都必须是黑色的。(但黑色结点的子结点可以是黑色的。) 5、对任
阅读全文

浙公网安备 33010602011771号