python树的孩子链存储结构

树的孩子链存储结构是一种树的存储方式,它使用孩子兄弟表示法来表示树的结构。在这种存储结构中,树的每个节点都有一个指向其第一个孩子的指针和一个指向其下一个兄弟的指针。这样,可以通过这些指针来表示树的层次结构和节点之间的关系。

具体来说,对于每个节点,可以使用一个结构体来表示,其中包括节点的数据域以及指向其第一个孩子和下一个兄弟的指针。通过这种方式,可以轻松地遍历树的节点,查找节点的孩子和兄弟节点,以及进行其他操作。

树孩子链存储结构在一些应用中比较常见,特别是对于动态树结构的表示和操作,它可以提供比较灵活的存储方式,并且可以节省一定的存储空间。然而,由于需要额外的指针来表示孩子和兄弟节点的关系,可能会增加一定的存储开销,并且在一些操作上可能会比较复杂。因此,在选择树的存储结构时,需要根据具体的应用场景和需求来进行选择。

 代码:

class Node():
    def __init__(self,data=None):
        self.data=data
        self.next=None
class stree():
    def __init__(self):
        self.data=[]# 存储节点类

    # 传入结点进入存储的列表结构
    def creat(self,arr):# 将节点类创建并传入
        for i in range(len(arr)):
            p = Node(arr[i])
            self.data.append(p)

    # 建立节点和节点之间的关系
    def creat_s(self,i,j):#i为建立节点的下标,j为连接下标
        p = self.data[i]
        while p.next!=None:
            p = p.next
        q = Node(self.data[j].data)
        p.next=q

    # 遍历操作
    def display(self):
        for i in range(len(self.data)):
            if i==0:
                print(self.data[i].data,end=' ')
            p = self.data[i].next
            while p!= None:
                print(p.data,end=" ")
                p = p.next
        print()

    # 添加结点建立联系
    def add(self,i,e):# i为e的父节点下标
        # 将新节点添加进存储结构的操作
        q = Node(e)
        self.data.append(q)
        # 将新节点和对应i节点建立关系的操作
        p = self.data[i]
        while p.next != None:
            p = p.next
        c = Node(e)
        p.next = c

    # 删除对应i结点下标值为e的结点(方法要求不能删除父结点)
    def delx(self,i,e):
        p = self.data[i]
        while p.next.data!=e and p.next!=None:
            p = p.next
        p.next=p.next.next

    # 找到对应i结点下标值为e的结点,对其修改为值n_e
    def change(self,i,e,n_e):
        p = self.data[i]
        while p.data!=e and p!=None:
            p = p.next
        if p!=None:
            p.data=(n_e)

    # 查找对应i结点下标值为e的结点
    def find(self,i,e):
        p = self.data[i]
        while p.data != e and p != None:
            p = p.next
        if p != None:
            return p

a = stree()
a.creat(["A","B","C"])
a.creat_s(0,1)
a.creat_s(0,2)
a.display()
# a.add(0,'D')
# a.display()
# a.delx(0,'D')
# a.display()
# a.change(0,"C",'E')
# a.display()
# print(a.find(0,"E").data)

孩子链存储结构相对于其他树的存储结构,具有一些优势:

1. 灵活性:孩子链存储结构可以很容易地表示不规则的树形结构,因为每个节点只需存储其孩子节点和兄弟节点的指针,而不需要预先知道树的深度或者每个节点的孩子个数。

2. 节省空间:相对于其他存储结构,孩子链存储结构可以节省一定的空间,因为它不需要为每个节点都存储孩子节点的个数,只需存储指向孩子节点和兄弟节点的指针。

3. 动态性:孩子链存储结构适合表示动态树结构,因为它可以方便地插入或删除节点,而不需要移动整个树的结构。

4. 方便的遍历和操作:通过孩子链存储结构,可以方便地遍历树的节点,查找节点的孩子和兄弟节点,以及进行其他操作,如搜索、插入、删除等。

孩子链存储结构在某些情况下具有更好的适用性和效率,特别是对于动态树结构的表示和操作。然而,它也有一些缺点,比如可能会增加一定的存储开销,并且在一些操作上可能会比较复杂。因此,在选择树的存储结构时,需要根据具体的应用场景和需求来进行选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/192151.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大公司为什么喜欢centos系统写爬虫?

CentOS是一个基于Red Hat Enterprise Linux(RHEL)源代码构建的开源操作系统,它受到大企业喜欢大多数因为他系统的稳定性,安全性以及兼容性等。可以为企业提供更多的商业支持。以我个人为例,公司在做爬虫数据抓取多是采…

Vue 双向数据绑定

之前通过v-bind来完成的数据绑定&#xff0c;属性值和表达式进行绑定&#xff0c;表达式的值发生变化了属性值也跟着发生变化。 单向数据绑定&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>首页</titl…

信息素养大赛知识点

基础理论准备 开放存储期刊 开放存取期刊是一种免费的网络期刊&#xff0c;旨在使所有用户都可以通过因特网无限制地访问期刊论文全文。此种期刊一般采用作者付费出版、读者免费获得、无限制使用的运作模式&#xff0c;论文版权由作者保留。在论文质量控制方面&#xff0c;oa…

Couchdb 命令执行漏洞复现 (CVE-2017-12636)

Couchdb 命令执行漏洞复现 &#xff08;CVE-2017-12636&#xff09; 1、下载couchdb.py 2、修改目标和反弹地址 3、Python3调用执行即可 couchdb.py文件下载地址: https://github.com/vulhub/vulhub/blob/master/couchdb/CVE-2017-12636/exp.py ‍ 在VULFocus上开启环境 …

虚拟内存的基本概念

文章目录 虚拟内存虚拟地址空间(其他 Unix 系统的设计也与此类似)。程序代码和数据堆共享库栈内核虚拟内存 参考 虚拟内存 虚拟内存是一个抽象概念&#xff0c;它为每个进程提供了一个假象&#xff0c;即每个进程都在独占地使用主存。每个进程看到的内存都是一致的&#xff0c…

城市安全守护者:分析无人机在交通领域的应用

随着科技的进步&#xff0c;无人机在交通领域的应用不断增加&#xff0c;为智慧交通管理提供了新便利。无人机凭借其灵活性&#xff0c;在违章取证、交通事故侦查、交通疏导等方面展现出巨大的应用潜力。无人机在交通领域的应用有哪些&#xff1f;跟着我们一探究竟。 1、违章取…

iOS移动应用程序的备案与SHA-1值查看

​ 目录 &#x1f4dd;iOS移动应用程序的备案与SHA-1值查看 引言 第一部分&#xff1a;App备案 第二部分&#xff1a;查看SHA-1值 引言 在开发和发布移动应用程序时&#xff0c;进行App备案是非常重要的一步&#xff0c;它是确保您的应用在合规性方面符合相关法规的过程。…

STM32入门

写在前面&#xff1a;本文是基于哔哩哔哩江协科技的STM32入门教程-2023版 细致讲解 中文字幕学习时写的笔记&#xff0c;复习查阅方便&#xff0c;如有侵权&#xff0c;联系删除。 另外本人也是初学者&#xff0c;有很多理解不透彻的或者错误的理解&#xff0c;希望大家多多批评…

JVM——垃圾回收算法(垃圾回收算法评价标准,四种垃圾回收算法)

目录 1.垃圾回收算法发展简介2.垃圾回收算法的评价标准1.吞吐量2.最大暂停时间3.堆使用效率 3.垃圾回收算法01-标记清除算法垃圾回收算法-标记清除算法的优缺点 4.垃圾回收算法02-复制算法垃圾回收算法-复制算法的优缺点 5.垃圾回收算法03-标记整理算法标记整理算法的优缺点 6.…

基于C#实现鸡尾酒排序(双向冒泡排序)

通俗易懂点的话&#xff0c;就叫“双向冒泡排序”。 冒泡是一个单向的从小到大或者从大到小的交换排序&#xff0c;而鸡尾酒排序是双向的&#xff0c;从一端进行从小到大排序&#xff0c;从另一端进行从大到小排序。 从图中可以看到&#xff0c;第一次正向比较&#xff0c;我们…

第二证券:煤炭板块震荡走高 潞安环能、晋控煤业涨超5%

证券时报网讯&#xff0c;煤炭板块27日盘中发力走高&#xff0c;到发稿&#xff0c;潞安环能、晋控煤业涨超5%&#xff0c;平煤股份、山西焦煤涨逾3%&#xff0c;恒源煤电、开滦股份等上扬。 职业方面&#xff0c;近期寒潮来袭&#xff0c;气温下降带动居民用电需求增加&#…

操作系统——解决了我的一些困惑

目录 1、电脑开机做了什么事情 2、真正实现并行的计算机 3、计算机中的淘汰算法 & 分配算法 & 调度算法 & 空间管理 4、什么是虚拟内存&#xff1f;为什么需要虚拟内存&#xff1f;最多可分配多少&#xff1f; 5、TLB&#xff08;快表&#xff09;、分页存储&…

TechSmith Camtasia2024中文版简单好用的视频处理软件

TechSmith Camtasia 2024中文版是由techsmith公司推出的一款简单好用的视频处理软件&#xff0c;它集视频录制与视频后期处理为一体&#xff0c;用户可以使用软件来进行屏幕录制&#xff0c;其中包括了影像、音效、鼠标移动的轨迹、解说声音等任何模式下的电脑屏幕状态&#xf…

【LeetCode:907. 子数组的最小值之和 | 贡献法 乘法原理 单调栈】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

王者荣耀小游戏

第一步是创建项目 项目名自拟 第二部创建个包名 来规范class 然后是创建类 GameFrame 运行类 package com.sxt; package com.sxt;import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.…

uni-app:心跳机制基础逻辑(定时器方法解决)

思路 1、在登录的时候&#xff0c;定义一个存储当前时间的全局变量&#xff0c;并且开始心跳请求 2、在全局中定义一个定时器&#xff0c;该定时器每秒都会执行一次&#xff0c;并获取当前的时间 3、将定时器每秒的获取的当前时间和全局变量获取的时间进行比较 4、指定一个…

ShardingSphere-JDBC 入门教程(v4.1.1)

框架介绍 ShardingSphere-JDBC 定位为轻量级 Java 框架&#xff0c;在 Java 的 JDBC 层提供的额外服务。它使用客户端直连数据库&#xff0c;以 jar 包形式提供服务&#xff0c;无需额外部署和依赖&#xff0c;可理解为增强版的 JDBC 驱动&#xff0c;完全兼容 JDBC 和各种 OR…

SSRF漏洞防御:黑白名单的编写

SSRF漏洞防御:黑白名单的编写 以pikachu靶场中SSRF(crul)为例 我们可以看到未做任何防御 我们查看源代码 黑名单的制作 思路: 什么内容不能访问 构造代码 $xyarray("file" > "","http" > "","https" > …

国产1433D/E/F/H手持式信号发生器,可覆盖到50GHz

1433D/E/F/H信号发生器 1433系列信号发生器是中电科思仪科技股份有限公司专为外场测试设计的一款手持式仪器&#xff0c;具有连续波信号输出、频率/幅度/脉冲多种调制、大动态范围幅度调节、步进/列表扫描等功能&#xff0c;采用8.4寸大屏幕液晶及电容触摸屏一体化设计&#xf…