北航计算机软件技术基础课程作业笔记【4】

embedded/2024/10/4 17:27:05/

题目(好像以前没加)

二叉树与哈希表

作业

1.二叉树前序遍历结果

  • 二叉树结构为

     
  • 代码实现中序+后序推理前序表达式

    #include <iostream>
    #include <stack>
    #include <string>
    #include <vector>
    #include <deque>
    ​
    //  BDCEAFHG
    std::deque<char> mid_order = {'B','D','C','E','A','F','H','G'};
    //  DECBHGFA
    std::deque<char> back_order = {'D','E','C','B','H','G','F','A'};
    ​
    ​
    std::string mid = "BDCEAFHG";
    std::string back = "DECBHGFA";
    ​
    void get_res(std::string mid, std::string back)
    {   if(mid.empty()){return;}char root = back.back();std::cout <<root;int root_index = mid.find(root),length = mid.length();// mid , left is 0-ind, right is ind-end// back, left is 0-ind, right is ind-end-1 // left sub treeget_res(mid.substr(0,root_index),back.substr(0,root_index));// right subtree// get_res(mid.substr(root_index+1,length-1),back.substr(root_index,length-1));get_res(mid.substr(root_index+1,length-1),back.substr(root_index,length-root_index-1));
    }
    ​
    ​
    int main()
    {get_res(mid,back);return 0;
    }
  • 运行结果

    ABCDEFGH(符合推导的二叉树结构)

2.将多叉树转二叉树

 

3.线性哈希表

H(k)=INT(k/13),序列为(08, 14,23,30,68,92,42,55,76,10)

目录

二叉树与哈希表

作业

1.二叉树前序遍历结果

2.将多叉树转二叉树

3.线性哈希表

重要概念回顾

1.前序

2.前序与后序

3.后序+中序求前序思路

4.线性哈希表


序号0123456789101112
Key08142330426855927610
冲突0011102039

平均查找次数=(1*4+2*3+3*1+4*1+10*1)/10=2.7

重要概念回顾

1.前序

前是指的“更新(更子节点)”的方向,对于数组而言,i的前序位置指的i+1

2.前序与后序

前序位置的代码只能从函数参数中获取父节点传递来的数据,而后序位置的代码不仅可以获取参数数据,还可以获取到子树通过函数返回值传递回来的数据

3.后序+中序求前序思路

后序得到根节点,将中序的输出分为左右子树,再在后序的子树找根节点。依次循环

4.线性哈希表

按照key的顺序依次带入哈希函数,得到序号值,看看是否在该序号下已有其他key,若有,就让key值+1(记得取模,毕竟长度有限),直到序号下没有key为止


http://www.ppmy.cn/embedded/14241.html

相关文章

「Java开发指南」如何利用MyEclipse启用Spring DSL?(二)

本教程将引导您通过启用Spring DSL和使用Service Spring DSL抽象来引导Spring和Spring代码生成项目&#xff0c;本教程中学习的技能也可以很容易地应用于其他抽象。在本教程中&#xff0c;您将学习如何&#xff1a; 为Spring DSL初始化一个项目创建一个模型包创建一个服务和操…

idea在controller或者service使用ctrl+alt+b进入方法后,如何返回到 进入前的那一层

idea在controller或者service使用ctrlaltb进入方法后&#xff0c;如何返回到进入方法的最外层 解决方案使用 ctrlalt ← /→← /→ 键盘上的左右键盘

[InternLM训练营第二期笔记]5. LMDeploy 量化部署 LLM 实践

该系列是上海AI Lab举行的书生 浦语大模型训练营的相关笔记部分。 该笔记是第五节课&#xff0c;学习大语言模型量化的基本概念&#xff0c;以及利用LMDeploy工具进行微调。 0. 模型部署的概念 0.0 背景 如果要将大模型在特定平台&#xff08;大到服务器集群&#xff0c;小到…

【七】jmeter5.5+influxdb2.0+prometheus+grafana

参考文章&#xff1a;https://blog.csdn.net/wenxingchen/article/details/126892890 https://blog.csdn.net/Zuo19960127/article/details/119726652 https://blog.csdn.net/shnu_cdk/article/details/132182858 promethus参考 由于自己下载的是infuldb2.0&#xff0c;所以按照…

sql 笛卡尔积

隐式联接&#xff1a;一种在SQL查询中不使用显式的JOIN语句&#xff0c;而是通过在WHERE子句中指定条件来连接两个或多个表的方法。 在早期的SQL实践中&#xff0c;隐式联接是非常常见的&#xff0c;尤其是在早期版本的数据库系统中。隐式联接的工作原理是通过在WHERE子句中指…

用户中心 -- 代码理解

一、删除表 & if 删除表 1.1 DROP TABLE IF EXISTS user 和 DROP TABLE user 网址&#xff1a; 用户管理第2节课 -- idea 2023.2 创建表--【本人】-CSDN博客 二、 代码 2.1 清空表中数据 的 命令 【truncate 清空】 网址&#xff1a; 用户管理第2节课 -- idea 2…

【k8s】Kubernetes 1.29.4离线安装部署(总)

&#xff08;一&#xff09;kubernetes1.29.4离线部署之-安装文件准备 &#xff08;二&#xff09;kubernetes1.29.4离线部署之-镜像文件准备 &#xff08;三&#xff09;kubernetes1.29.4离线部署之-环境初始化 &#xff08;四&#xff09;kubernetes1.29.4离线部署之-组件安装…

CSS的网页美化功能

<1>文字类 通常情况下&#xff0c;一般使用span对文字进行重点突出&#xff0c;用div来操作一段代码块。 字体的所有属性&#xff1a; 属性描述font在一个声明中设置所有的字体属性font-family指定文本的字体系列font-size指定文本的字体大小font-style指定文本的字体样…