Python基础算法:排序、查找、二叉树

一文带你详解完全二叉树(超详细) 完全二叉树是一种特殊类型的二叉树,其中树的所有级别都被完全填充,除了最低级别的节点从尽可能左侧填充之外。完全二叉树是一种特殊类型的二叉树,其中树的所有级别都被完全填充,除了最低级别的节点尽可能左侧填充之外。 阅读详情

排序算法

1、插入排序

import random

"""头插法"""
def insert(ls):
	for i in range(len(ls)-1):
		print('\033[036m',i,ls,'\033[0m')
		min_=ls[i]
		index=i
		for j in range(i+1,len(ls)):
			if ls[j]<min_:
				min_=ls[j]
				index=j
		ls.insert(i,min_)
		del ls[index+1]
	return ls
a=[0,11,22,33,44,55,66,77,88,99]
random.shuffle(a)
print(insert(a))

"""尾插法"""
def append_sort(ls):
    for i in range(len(ls),0,-1):
        min_=ls[0]
        index=0
        print('\033[36m',i,ls,'\033[0m')
        for j in range(i):
            if ls[j]<min_:
                min_=ls[j]
                index=j
        ls.append(min_)
        del ls[index]
    return ls
a=[0,11,22,33,44,55,66,77,88,99]
random.shuffle(a)
print(append_sort(a))

2、交换排序

import random

def interchange(ls):
	for i in range(len(ls)-1):
		print('\033[036m',i,ls,'\033[0m')
		min_=ls[i]
		index=i
		for j in range(i+1,len(ls)):
			if ls[j]<min_:
				min_=ls[j]
				index=j
		ls[i],ls[index]=min_,ls[i]
	return ls

a=[0,11,22,33,44,55,66,77,88,99]
random.shuffle(a)
print(interchange(a))

3、冒泡排序

import random

def bubble(ls):
    go_on=1
    for i in range(len(ls)-1):
        print('\033[036m',i,ls,'\033[0m')
        go_on=0
        for j in range(len(ls)-1,i,-1):
            if ls[j]<ls[j-1]:
                ls[j-1],ls[j]=ls[j],ls[j-1]
                go_on=1
        if not go_on:
            break
    return ls

a=[0,11,22,33,44,55,66,77,88,99]
random.shuffle(a)
print(bubble(a))

4、归并排序

4.1、合并两个有序序列

def merge(ls1,ls2):
    ls3=[]
    i=j=0
    while i<len(ls1) and j<len(ls2):
        if ls1[i]<ls2[j]:
            ls3.append(ls1[i])
            print('\033[036m',i,ls3,'\033[0m')
            i+=1
        else:
            ls3.append(ls2[j])
            print('\033[036m',j,ls3,'\033[0m')
            j+=1
    if i<len(ls1):
        for ii in ls1[i:]:
            ls3.append(ii)
    else:
        for jj in ls2[j:]:
            ls3.append(jj)
    return ls3

a=[1,3,5,6]
b=[0,2,4,7,8,9]
c=merge(a,b)
print(c)

4.2、完整版

def merge(ls1, ls2):
    ls3 = []
    i = j = 0
    while i < len(ls1) and j < len(ls2):
        if ls1[i] < ls2[j]:
            ls3.append(ls1[i])
            i += 1
        else:
            ls3.append(ls2[j])
            j += 1
    if i < len(ls1):
        ls3.extend(ls1[i:])
    else:
        ls3.extend(ls2[j:])
    return ls3

def merge_sort(ls):
    if len(ls) <= 1:
        return ls
    half = int(len(ls) / 2)
    left = merge_sort(ls[:half])
    right = merge_sort(ls[half:])
    return merge(left, right)

from random import shuffle
ls = list(range(9))
shuffle(ls)
print(ls)
print(merge_sort(ls))

查找算法

1、顺序查找

# sequential search
def sequential(ls,value):
    for i in range(len(ls)):
        print('\033[036m',i,ls[i],'\033[0m')  # show steps
        if ls[i]==value:
            return i

l=[0,11,22,33,44,55,66,77,88,99]
print(l)
for i in range(9):
    v=int(input('look up number').strip())
    print(sequential(l,v))

2、二分查找

# binary search
def binary(ls,value):
    head,tail=0,len(ls)-1
    mid=(head+tail)//2
    while head<=tail:
        if ls[mid]==value:
            return mid
        elif value<ls[mid]:
            print('\033[036m',mid,ls[mid],'\033[0m')  # show steps
            tail=mid-1
            mid=(head+tail)//2
        elif ls[mid]<value:
            print('\033[036m',mid,ls[mid],'\033[0m')  # show steps
            head=mid+1
            mid=(head+tail)//2

l=[0,11,22,33,44,55,66,77,88,99]
print(l)
for i in range(9):
    v=int(input('look up number').strip())
    print(binary(l,v))

3、字符串查找

def find(sentence, word, start=0, end=9999):
    len_s = len(sentence)
    len_w = len(word)
    end = min(len_s - len_w + 1, end)
    for i in range(start, end):
        if word == sentence[i: i + len_w]:
            return i
    return -1

s = 'To see a world in a grain of sand. And a heaven in wild flower.'
print(find(s, ' a '))
print(find(s, ' a ', 7))
print(find(s, ' a ', 7, 17))

完全二叉树

1、创建树节点【TN】、创建树【FBT】、打印树【FBT.tree】

import math
# Tree Node
class TN:
    def __init__(self, data, left=None, right=None):
        self.data = data
        self.left = left
        self.right = right
    def __str__(self):
        return str(self.data)


# Full Binary Tree
class FBT:
    def __init__(self, ls):
        self.nodes = [TN(i) for i in ls]
        for i in range(len(self.nodes)-1, 0, -1):
            if i % 2 == 0:
                self.nodes[int(i/2-1)].right = self.nodes[i]
            else:
                self.nodes[int(i/2)].left = self.nodes[i]
        self.tree()
    # 树结构
    def tree(self):
        # 节点数
        length = len(self.nodes)
        # 总层数
        layers = math.ceil(math.log2(length))
        # 总宽度
        width = 2 ** layers - 1
        # 分隔符
        branch = ' '
        # 初始化顶层,并打印
        layer = [self.nodes[0].data]
        interval = 2 ** layers - 1
        for i in range(2, length + 1):
            if math.log2(i) % 1 == 0:
                # 打印当前层
                print((branch * interval).join(layer).center(width))
                layer = []
            # 元素进入当前层
            layer.append(self.nodes[i - 1].data)
            # 节点间空隙
            interval = 2 ** (layers - int(math.log2(i))) - 1
        # 打印底层
        print(branch.join(layer))
ls = [chr(i) for i in range(65, 91)]
fbt = FBT(ls)

打印结果

               A               
       B               C       
   D       E       F       G   
 H   I   J   K   L   M   N   O 
P Q R S T U V W X Y Z

2、递归法遍历

# 先序遍历
def preorder_traversal(node):
    print('%3s' % node, end='')
    if node.left:
        preorder_traversal(node.left)
    if node.right:
        preorder_traversal(node.right)
# 中序遍历
def inorder_traversal(node):
    if node.left:
        inorder_traversal(node.left)
    print('%3s' % node, end='')
    if node.right:
        inorder_traversal(node.right)
# 后序遍历
def postorder_traversal(node):
    if node.left:
        postorder_traversal(node.left)
    if node.right:
        postorder_traversal(node.right)
    print('%3s' % node, end='')
# traversal
print('\npreorder')
preorder_traversal(fbt.nodes[0])
print('\ninorder')
inorder_traversal(fbt.nodes[0])
print('\npostorder')
postorder_traversal(fbt.nodes[0])

打印结果

preorder
  A  B  D  H  P  Q  I  R  S  E  J  T  U  K  V  W  C  F  L  X  Y  M  Z  G  N  O
inorder
  P  H  Q  D  R  I  S  B  T  J  U  E  V  K  W  A  X  L  Y  F  Z  M  C  N  G  O
postorder
  P  Q  H  R  S  I  D  T  U  J  V  W  K  E  B  X  Y  L  Z  M  F  N  O  G  C  A

3、递归效率较低,可改用【栈】

# 先序遍历
def preorder_traversal(node):
    ls = []
    while True:
        # 节点不为空时
        while node:
            print('%3s' % node, end='')
            # 入栈
            ls.append(node)
            # 进入左节点
            node = node.left
        # 栈为空时退出
        if ls == []:
            break
        # 出栈
        node = ls.pop()
        # 进入右节点
        node = node.right
# 中序遍历
def inorder_traversal(node):
    ls = []
    while True:
        # 节点不为空时
        while node:
            # 入栈
            ls.append(node)
            # 进入左节点
            node = node.left
        # 栈为空时退出
        if ls == []:
            break
        # 出栈
        node = ls.pop()
        print('%3s' % node, end='')
        # 进入右节点
        node = node.right
# 后序遍历,难度较大,以后再补充
def postorder_traversal(node):
    pass
# traversal
ls = [chr(i) for i in range(65, 91)]
fbt = FBT(ls)
print('\npreorder')
preorder_traversal(fbt.nodes[0])
print('\ninorder')
inorder_traversal(fbt.nodes[0])

打印结果同上,不作重复

4、层序遍历

from collections import deque
# 层序遍历
def level_order(node):
    print('\nlevel order')
    # 根节点入队
    q = deque([node])
    # 先进先出
    while q:
        node = q.popleft()
        print('%3s' % node, end='')
        if node.left:
            q.append(node.left)
        if node.right:
            q.append(node.right)
# traversal
level_order(fbt.nodes[0])

打印结果

level order
  A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z

5、探索树的深度

# 树深度,递归法
def depth(node):
    if node is None:
        return 0
    dl = depth(node.left)
    dr = depth(node.right)
    return max(dl, dr) + 1
# the depth of tree
print('the depth of tree:', depth(fbt.nodes[0]))

打印结果

the depth of tree: 5

6、遍历指定层

from collections import deque
# 层序遍历
def level_order(node, layer=2):
    print('\nlevel order')
    # 根节点入队
    q = deque([(node, 1)])
    # 先进先出
    while q:
        node, depth = q.popleft()
        if depth == layer:
            print('%3s' % node, end='')
        if node.left:
            q.append((node.left, depth + 1))
        if node.right:
            q.append((node.right, depth + 1))
# traversal
level_order(fbt.nodes[0], layer=5)

打印结果

level order
  P  Q  R  S  T  U  V  W  X  Y  Z
Python实现二叉排序树 一、什么是二叉排序树? 二叉排序树要么是一棵空二叉树,要么是具有如下特点的二叉树: 二叉排序树中,如果其根结点有左子树,那么左子树上所有节点的值都小于根结点的值; 二叉排序树中,如果其根结点有右子树,那么右子树上所有节点的值都大于根结点的值; 二叉排序树的左右子树也要求都是二叉排序树。 如下图所示: 二、二叉排序树的Python实现 二叉排序树的插入 插入: 从根结点开始逐个与关键字进行比较,小于根结点去左边,大于根结点去右边,碰到子树为空的情况指向关键字。 二叉排序树的查找 查找: 对比节点的值和关 阅读详情

相关推荐

Python实现Tree Sort二叉树排序算法

Tree Sort算法的基本思想是将待排序的n个元素插入到一棵空的二叉搜索树中,然后对这棵树进行中序遍历,得到的序列就是排好序的结果。因为二叉搜索树具有左子树的所有节点都比根节点小,右子树的所有节点都比根节点大的规律,所以中序遍历会输出升序排列的元素序列。通过以上Python代码实现,我们了解了Tree Sort算法的具体实现过程,二叉搜索树的插入和中序遍历操作,以及Tree Sort算法的性能优势和不足。二叉搜索树的插入操作要求新加入的节点比左子树的所有值都大,比右子树的所有值都小。

. 473

Python数据结构与算法篇(十二)-- 树和二叉树

终于学到了二叉树,LeetCode里面三分之一都是关于二叉树,俗话说打铁还需自身硬,本节学习树的基本概念,二叉树的实现、遍历、转换二叉树等。

CarpeDiem 2436

数据结构-第五期——二叉树(Python)

二叉树满足条件:1、本身是有序树 2、树中包含的各个节点的度不能超过 2,即只能是 0、1 或者 2;

荷叶田田的博客 5031

Kener SQL Monitor 实战:用 Knex 监控 MySQL/PostgreSQL 数据库连接健康

SQL Monitor 是 Kener 内置的数据库探针类型:Kener 周期性地向目标数据库建立连接并执行一条自定义查询,查询成功即判定 UP,超时或连接/执行失败则判定 DOWN,并据此触发告警。读完本文,你将掌握 SQL Monitor 的全部配置字段(`dbType`、`connectionString`、`query`、`timeout`)、连接字符串中的环境变量替换机制,以及从 `Sq

gitblog_00157的博客 305

Win10 有线网卡配置静态IP后,出现两个IPv4地址的解决方法

在我使用有线网络连接局域网时,配置了静态IP之后,发现网络并没有通,检查之后发现“以太网状态”-“网络连接详细信息”中,出现了2个IPv4的地址(一个是DHCP分配的169.254.xx.xx的IP,另一个是我配置的静态地址),但是网络是没有正常与我所配置的静态地址正常通信的。这个是我执行后的截图,重启电脑后以太网配置静态IP,恢复正常。最终我查了好多网络上的解决办法,有些办法并没有解决我的问题。这个是网上别人的问题截图,我的也是类似这种。第一种(没有解决我的问题)第二种(没有解决我的问题)

Zlz_Nike的博客 2万+

Miniforge3部署教程,完美替代Anaconda3

大背景不介绍了,哎!直接上教程!

zzy_ucas的博客 1万+

python中常用的算法

快速排序是一种分治法(Divide and Conquer)的排序算法,它的基本思想是:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后分别对这两部分记录继续进行排序,以达到整个序列有序。冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。如果前面的元素比当前元素大,我们就将前面的元素向后移动一位,为当前元素腾出空间。首先,我们将数组的第一个元素视为已排序的元素,即只包含一个元素的数组自然是排序好的。

weixin_43270539的博客 1977

DAC8568实战指南:如何用STM32实现8通道DAC精准控制(附代码)

本文提供DAC8568与STM32结合的实战指南,详细解析8通道16位DAC的精准控制方法。内容涵盖硬件连接、SPI配置、驱动层构建、时序调试及多通道同步输出等关键步骤,并附有经过验证的HAL库驱动代码,帮助工程师快速解决实际项目中的通信与输出稳定性问题。

weixin_29175469的博客 746

【Python】排序算法及二叉树讲解(冒泡 选择 插入 二分查找 二叉树的广度优先和三种深度优先遍历方式)

​ 插入算法把要排序的数组分成两部分:第一部分是有序的数字(这里可以默认数组第一个数字为有序的第一部分),第二部分为无序的数字(这里除了第一个数字以外剩余的数字可以认为是无序的第二部分)​ 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序。​ 所谓排序,使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。​ 第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,

weixin_57336987的博客 2015

计算机网络期末复习提纲(全知识点总结)

计算机网络期末复习提纲全知识点总结第一章 概述1.基本概念- 链路,结点,协议和服务,实体和对等实体,各层PDU- C/S模式,B/S模式,P2P模式- LAN,WAN,MAN,PAN的划分- 网络性能参数:速率,带宽,吞吐量,时延,往返时间,信道利用率2.互联网的组成(边缘部分与核心部分的作用)3.电路交换与分组交换,数据报交换和虚电路交换的特点4.TCP/IP体系结构,数据的封装与解封装第二章 物理层1.信号编码:不归零编码,曼切斯特编码2.影响信号失真程度的因素3.传输介质:双绞线,同轴电缆,光纤(单

mcyuuji的博客 8万+

如何利用东南大学齿轮箱数据集进行故障诊断?从数据采集到模型训练全流程解析

本文详细解析如何利用东南大学齿轮箱数据集进行故障诊断,涵盖从数据采集到模型训练的全流程。通过信号预处理、特征工程构建及多种机器学习模型对比,帮助开发者高效实现工业设备健康管理。特别适合希望将AI技术应用于工业场景的Python开发者。

m2n3b4v5c6的博客 381

排序算法&二分查找&二叉树

选择排序是一种简单直观的排序算法,其核心思想是通过不断选择未排序部分中的最小元素,并将其放置到已排序部分的末尾,从而实现整个序列的升序或降序排列。该算法易于理解和实现,但效率较低,适用于小规模数据或教学场景。下面我将逐步解释其原理。快速排序是一种高效的排序算法,基于分治策略(divide and conquer),由 Tony Hoare 在 1960 年提出。它的核心思想是通过选择一个基准元素(pivot)将数组划分为两个子数组,然后递归地对子数组排序,最终合并结果。选择基准元素(pivot)

aliedudu的博客 941

用OpenIPC复活你的旧摄像头:手把手教你给君正T31芯片设备刷开源固件

本文详细介绍了如何使用OpenIPC项目为君正T31芯片的旧摄像头刷入开源固件,解锁更多功能并延长设备寿命。从硬件识别、风险控制到详细刷机步骤和后期配置,手把手教你将闲置摄像头改造为智能监控设备,实现隐私可控、功能扩展等优势。

weixin_30790841的博客 772

Python__数据结构与算法——查找与排序

查找和排序是最基本的算法,在很多脚本中都会用到查找和排序。尽管 Python 提供的用于查找和排序的函数能够满足绝大多数需求,但还是有必要了解最基本的查找和排序算法,以便在有特殊需求的情况下,可以自己编写查找、排序脚本。 一、查找 基本的查找方法有顺序查找、二分查找和分块查找等。其中,顺序查找是最简单的查找方法,就是按照数据排列的顺序依次查找,直到找到所查找的数据为止(可查看数据表都...

20butterfly的博客世界 573

Ceres Solver:从入门到使用

Ceres Solver是谷歌开源的C++非线性优化库,能够解决有约束或无约束条件下的非线性最小二乘问题。2010年之后大量的运用在谷歌的产品开发中,尤其在谷歌开源的cartographer中被大量的使用。 ceres可以在Linux,Windows,macOS,Andrioid,IOS系统进行安装使用,详情可查看下方的官网链接。 Ceres Solver 官网:http://ceres-solver.org/

非晚非晚的博客 1万+

使用 Simulink Real-Time 搭建一个完整的实时信号采集与滤波系统模型

本文详细介绍了基于Simulink Real-Time构建实时信号采集与滤波系统的完整流程。主要内容包括:系统配置(模型创建与参数设置)、信号采集模块搭建(模拟信号源或真实硬件连接)、实时滤波器设计(浮点/定点)、输出可视化(Scope/ToWorkspace等)、模型编译与下载到目标机、外部模式在线调试及数据保存方法。系统可实现微秒级实时信号处理,适用于工业控制、航空航天等对时间确定性要求高的场景。文章还提供了优化建议(多速率建模、优先级调度等)和应用场景说明,帮助读者快速掌握实时系统开发的核心技能。

amy_mhd的博客 304

Python算法分析 查找与排序

堆排序 堆排序前传树与二叉树 树是一种数据结构 树是一种可以递归定义的数据结构 树是由n个节点组成的集合: 如果 n= 0 ,那么这是一颗空树 如果n>0,那存在1个节点的作为树的根节点,其他节点可以分为m个节点,每个节点右时一棵树; 一些概念: 根节点、叶子节点;叶子节点 不能分叉的节点B/C/H/ 树的深度(高度) 最深有几层本树右4层 树的度 #分叉的数量 F节点的度,树的度,就是节点分叉最多的节点数量这棵树度时6 A节点时6 ; 孩子节点/父节点 B是A的孩子节点,A是B的父节点 子树 什

Foamy3379的博客 1551

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

常用查找算法整理(顺序查找、二分查找、插值查找、斐波那契查找、哈希查找、二叉排序树查找、平衡二叉树查找、红黑树查找、B树和B+树查找、分块查找)

常用查找算法整理

fansv587的博客 2028

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

查找 排序算法(系列)

low B三人组的时间复杂度都是O(n^2),都是原地排序# 归并:i = lowheap = []i += 1else:j += 1i += 1j += 1​​print(li)稳定性:挨个移动位置的都是稳定的,不挨个飞着换的都是不稳定的。

2301_77892626的博客 1359

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

python实现算法与数据结构基础-链表、栈、队列、排序算法、二分查找、二叉树

python实现算法与数据结构基础-链表、栈、队列、排序算法、二分查找、二叉树

Sun123234的博客 944

python算法学习笔记之查找算法

删除操作:如果删除叶子节点删除就可以,如果删除的是只有左子树或者右子树的节点,先找到节点的位置,让这个子树替代这个节点然后删除这个子树的节点,如果删除的节点有左右子树,找到这个节点的左子树中最大的节点,代替这个节点,然后删除这个最大的节点,或者找右子树中最小的去替代这个节点去代替他。此外,有些资料还会提到第五条规则,即每个叶子节点(最后一个节点)都是黑色的,这其实是第四条规则的一个推论,因为在红黑树中,叶子节点通常被视为指向NULL的节点,而所有这样的节点都被视为黑色。节点内的数据操作是在内存中进行的。

weixin_42264784的博客 1551

【数据结构与算法】python实现二分查找

python实现二分查找

weixin_43911004的博客 1万+

Python的几个基础算法

学习

over_thinker的博客 2128

Python 实现二叉树的创建、二叉树的添加、二叉树的删除、二叉树的修改、二叉树的查找、二叉树的的遍历 最详细的二叉树 增 删 改 查

Python 实现二叉树的创建、添加、删除、修改、查找

storyfull 2301

十大排序、七大查找算法python实现——二叉树查找

十大排序、七大查找算法python实现——二叉树查找 class BSTNode: def __init__(self, item, left= None, right = None): self.item = item self.left = left self.right = right class BinarySortTree: def __init__(self): self.root = N.

qq_36614831的博客 344

Python实现: 常用排序算法 & 二叉树的遍历算法

Python实现: 常用排序算法 & 二叉树的遍历算法

taotiezhengfeng的博客 4025
上一篇: Python算法:【螺旋】矩阵
下一篇: Python继承和反射
小基基o_O
博客等级 码龄9年 4414粉丝 467原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值