美文网首页
Python 数据结构

Python 数据结构

作者: 西萌XXX | 来源:发表于2022-02-23 15:19 被阅读0次

    1.二叉树构造

    class Node:
        def __init__(self,val):
            self.childleft = None
            self.childright = None
            self.nodedata = val
    
    root = Node(1)
    root.childleft = Node(2)
    root.childright = Node(3)
    root.childleft.childleft = Node(4)
    root.childleft.childright = Node(5)
    

    1.1中序遍历

    首先访问左节点,然后访问根节点,然后访问右节点。

    def InOrd(root):
        if root:
            InOrd(root.childleft)
            print (root.nodedata)
            InOrd(root.childright)
    InOrd(root)  ##4 2 5 1 3
    

    从左子树中的所有节点开始遍历,然后向根移动,最后向右子树移动。


    中序遍历

    1.2.前序遍历

    首先访问根节点,然后是左子树,然后是右子树

    def PreOrd(root):
        if root:
            print (root.nodedata)
            PreOrd(root.childleft)
            PreOrd(root.childright)
    PreOrd(root)   ##1 2 4 5 3
    
    前序遍历

    1.3.后序遍历

    后序遍历从左边开始,然后到右边,最后是根。

    def PostOrd(root):
        if root:
            PostOrd(root.childleft)
            PostOrd(root.childright)
            print (root.nodedata)
    PostOrd(root)  ## 4 5 2 3 1
    
    后序遍历

    2.冒泡排序

    冒泡排序是一种比较算法,先比较相邻的元素,如果它们没有按照指定的顺序怎交换下位置。

    def bs(a):                   
        b=len(a)-1
        for x in range(b):
            for y in range(b-x):
                if a[y]>a[y+1]:
                    a[y],a[y+1]=a[y+1],a[y]
        return a
    a=[3,6,1,8]
    bs(a)
    

    3.线性搜索

    线性搜索算法用于通过将给定元素与给定数组的每个元素进行比较来连续搜索给定元素。

    def lin_search(myarray, n, key): 
        for x in range(0, n): 
            if (myarray[x] == key): 
                return x 
        return -1
       
    myarray = [ 12, 1, 34, 17]
    key = 17
    n = len(myarray)
    matched = lin_search(myarray, n, key) 
    if(matched == -1): 
        print("未发现") 
    else: 
        print("目标数索引为:", matched)
    

    相关文章

      网友评论

          本文标题:Python 数据结构

          本文链接:https://www.haomeiwen.com/subject/bdpolrtx.html