数据结构与算法第二套试卷大题

news2024/11/16 11:25:34

1.选择排序,插入排序的思路

1.1选择排序思路:
1.每次在数组中选一个最小的元素与第一个元素进行交换——>2.然后逐步缩小数组,重复第一,二步
1.2举例:
假设有一个无序数组 [5, 2, 8, 3, 1],使用选择排序的思路,首先找到最小的元素 1,与数组的第一个元素 5 交换位置,得到 [1, 2, 8, 3, 5],然后在剩余的部分中找到最小的元素 2,与第二个元素 2 交换位置,得到 [1, 2, 8, 3, 5],以此类推,最终得到有序数组 [1, 2, 3, 5, 8];
时间复杂度:0(n^2),空间复杂度:0(1)

2.1插入排序思路:
1.从第二个元素开始,与前面的元素对比,排序到合适的位置——>2.然后重复遍历后面的元素,重复1,2操作
2.2举例:
假设有一个无序数组 [7, 3, 5, 1, 9],使用插入排序的思路,首先将第二个元素 3 插入到已排序部分 [7] 的正确位置,得到 [3, 7, 5, 1, 9],然后将第三个元素 5 插入到已排序部分 [3, 7] 的正确位置,得到 [3, 5, 7, 1, 9],以此类推,最终得到有序数组 [1, 3, 5, 7, 9]
插入排序最优:0(n),平均为0(n^2),空间与上述类似

2.链表操作:

指针变量p指向双向链表中结点A指针变量q指向被插入结点B,要求给出在结点A的后面插入结点B的操作序列(设双向链表
中结点的两个指针域分别为llink和rlink)。
答案:

q->left=p;
q-right=p->right;
p->right->left=q;
p->right=q;

3.孩子兄弟表示法画二叉树

设一棵树T中边的集合为{(A,B),(A,C),(A,D),(B,E),(C,F),(C,G)},要求用孩子兄弟表示法(二叉链表)表示出该树的存储结构并将该树转化成对应的二叉树
方法:抓住左孩子右兄弟即可
在这里插入图片描述

4.二叉排序树

核心: 左边小,根节点第二,右子树最大即可

5.prim算法构造最小生成树

根贪心类似,1.从第一个顶点搜索权值最小的第二节点,绘制路线后,2.从第二各节点再往后搜**(需要判断之前的节点是否有较小的相邻路径**,如果有,就走之前节点的,其次是需要判断是否构成环
请添加图片描述
克鲁斯卡尔算法的话,他是先把边全部排序好,按权值从小到大进行绘制,如果构成环就跳过

6.集合的表示问题

设有两个集合A和集合B,要求设计生成集合C=A∩B的算法,其中集合A、B和C用链式存储结构表示。

//1.节点结构
typedef struct Node{
   int data;
   struct Node* next;
}Node; //后续表示节点直接Node* node即可

//2.链表结构
typedef struct LinkedList{
   Node* head; //节点
}LinkedList; //LinkedList* list表示链表

//3.初始化链表
void initLinkedList(LinkedList* list){
  list->head=NULL;
}

//4.向链表中插入元素
void insert(LinkedList* list,int data){
  //1.创建节点newNode并赋值
  Node*new_node=(Node*)malloc(sizeof(Node));
  new_node->data=data;
  new_node->next=NULL;
  //2.插入
  if(list->head==NULL){
    list->head=new_Node;
  }else{
    //2.2得到头节点
    Node* current=list->head;
    //2.3遍历到尾部
    while(current->next){
      current=current->next;
    }
    //2.3将新的节点插入链表尾部
    current->next=new_Node;
 }

}

// 生成集合C = A ∩ B
LinkedList inersect(LinkedList* list_a,LinkedList* list_b){
   LinkedList* result;
   //1.初始化链表
   initLinkedList(result);
   //2.遍历
   Node* current_a=list_a->head; //先得到链表a的头节点
   while(current_a!=NULL){
     Node* current_b=list_b->head; //链表b的头节点
     while(current_b!=NULL){
       if(current_a->data==current_b->data){
           //满足条件:两链表出现节点相同时,插入c
           insert(result,current_a->data);
           break;  
       }
       //没有找到与a链表相同的节点,继续遍历
       current_b=curent_b->next;
     }
     //遍历a链表
     current_a=current_a->next;
   }
   return result;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于单片机的红外测距仪设计

目 录 摘 要 I Abstract II 引 言 1 1 控制系统设计 3 1.1 主控制器选择 3 1.2 项目总体设计 3 2 项目硬件设计 5 2.1 单片机控制模块 5 2.2 测距模块设计 9 2.3 液晶显示模块 10 2.4 报警模块 11 3 项目软件设计 12 3.1 软件开发环境 12 3.2 系统主程序设计 13 3.3 LCD显示程…

外汇天眼科普:什么是场内交易和场外交易?

场内交易 又称交易所交易,指所有的供求方集中在交易所进行竞价交易的交易方式。 这种交易方式具有交易所向交易参与者收取保证金、同时负责进行清算和承担履约担保责任的特点。 此外,由于每个人都有不同的需求,交易所事先设计出标准化的金融…

基于 HBase Phoenix 构建实时数仓(2)—— HBase 完全分布式安装

目录 一、开启 HDFS 机柜感知 1. 增加 core-site.xml 配置项 2. 创建机柜感知脚本 3. 创建机柜配置信息文件 4. 分发相关文件到其它节点 5. 重启 HDFS 使机柜感知生效 二、主机规划 三、安装配置 HBase 完全分布式集群 1. 在所有节点上配置环境变量 2. 解压、配置环境…

一键清除JavaScript代码中的注释:使用正则表达式实现

这个正则表达式可以有效地匹配 JavaScript 代码中的各种注释&#xff0c;并且跳过了以 http: 或 https: 开头的链接。 /\/\*[\s\S]*?\*\/|\/\/[^\n]*|<!--[\s\S]*?-->|(?<!http:|https:)\/\/[^\n]*/gvscode 实战&#xff0c;ctrlF 调出查找替换工具&#xff0c;点…

无尘抹布在洁净室环境中的作用与重要性

导言&#xff1a; 洁净室环境&#xff0c;特别是在制药、电子和生物技术等行业中&#xff0c;对清洁和卫生的要求极为严格。无尘抹布在维护这些环境的洁净和卫生方面起着至关重要的作用。本文将探讨无尘抹布的重要性以及在洁净室环境中的各种应用。 了解无尘抹布 定义和组成&a…

基于SSM的环境监测管理系统设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 主要技术和工具介绍 3 1.1 SSM框架简介 3 1.1.1 Spring 3 1.1.2 Mybatis 数据持久化技术 3 1.1.3 SpringMVC 3 1.2 MySQL数据简介 4 1.3 本章小结 4 2 系统分析 5 2.1 需求分析 5 2.1.1 功能分析 5 2.1.2 用例说明 6 2.2 可行性分析 9 2.…

Unity性能优化篇(十一) 动画优化

1.恰当地设置Animator组件的Culling Mode。Always Animate表示如果该动画不可见&#xff0c;也会播放它。Cull Update Transformations表示如果该动画不可见&#xff0c;则不会渲染该动画&#xff0c;但是依然会根据该动画的播放来改变游戏对象的位置、旋转、缩放&#xff0c;这…

盘点热门的5个AI视频工具(上):附保姆级教程,居然还有免费的?(建议收藏)

一条完全使用 AI 做出的短视频&#xff0c;点赞上万&#xff0c;转发上万&#xff01; 你敢信&#xff0c;这是我在前几天刷视频的时候&#xff0c;看到的一个 AI 视频案例。 这种 AI 视频为什么会火&#xff1f; AI 虽然不是什么新的领域&#xff0c;但 2023 年&#xff0c…

基于springboot的迷你天猫商城设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 系统开发技术 3 1.1 Springboot 3 1.2 MyEclipse 3 1.3 MySQL 3 1.4 Apache JMeter 3 1.5 系统开发背景 4 1.6 系统需求分析 4 1.7 本章小结 4 2 系统分析 5 2.1 技术可行性分析 5 2.2 系统经济可行性分析 5 2.3 系统功能需求分析 5 2.4 …

深圳恒峰智慧|便携式森林灭火泵:森林安全的守护者

在自然环境中&#xff0c;森林是生态系统的重要组成部分&#xff0c;它们为我们提供氧气、净化空气、保持水源和防止土壤侵蚀等重要功能。然而&#xff0c;一旦森林发生火灾&#xff0c;这些宝贵的生态资源将面临巨大的破坏。为了保护森林资源&#xff0c;我们需要一种高效、便…

如何做好【沟通】管理

目录 管理的定义 管理的四大职能&#xff1a; 四共团队&#xff1a; 领导力&#xff1a; 沟通的四种类型听、说、读、写&#xff08;计划、报告&#xff09; 沟通四原则 思维框架&#xff1a;结构树报告 管理的定义 彼得.德鲁克&#xff1a;管理通过他人去完成任务的学…

使用anaconda管理多python版本环境

anaconda使用 安装 下载地址 miniconda anaconda 两者区别 Miniconda只包含了conda和Python&#xff0c;以及一些必要的依赖项&#xff0c;它的安装文件较小&#xff0c;占用空间较少&#xff0c;用户可以根据需要自行安装其他的包。Anaconda包含了conda、Python和超过150…

从根到叶:深入理解二叉搜索树

我们的心永远向前憧憬 尽管活在阴沉的现在 一切都是暂时的,转瞬即逝, 而那逝去的将变为可爱 &#x1f31d;(俄) 普希金 <假如生活欺骗了你> 1.二叉搜索树的概念 概念:搜索树&#xff08;Search Tree&#xff09;是一种有序的数据结构&#xff0c;用于存储和组…

基于R语言lavaan结构方程模型(SEM)技术应用

结构方程模型&#xff08;Sructural Equation Modeling&#xff0c;SEM&#xff09;是分析系统内变量间的相互关系的利器&#xff0c;可通过图形化方式清晰展示系统中多变量因果关系网&#xff0c;具有强大的数据分析功能和广泛的适用性&#xff0c;是近年来生态、进化、环境、…

视频监控平台EasyCVR+4G/5G应急布控球远程视频监控方案

随着科技的不断发展&#xff0c;应急布控球远程视频监控方案在公共安全、交通管理、城市管理等领域的应用越来越广泛。这种方案通过在现场部署应急布控球&#xff0c;实现对特定区域的实时监控&#xff0c;有助于及时发现问题、快速响应&#xff0c;提高管理效率。 智慧安防视…

Linux 7系统安装单机版 11.2.0.4 的两个bug处理

第1个bug&#xff1a;pdksh-5.2.14 is missing when Installing 11.2.0.4 on RHEL 7.6 结局办法&#xff1a;./runInstaller -ignorePrereq 或者 关注下面公众号 回复pdksh 获取pdksh下载链接安装 第2个bug&#xff1a;安装的时候报错输出 Error in invoking target agent nm…

uniapp封装文字提示气泡框toolTip组件

uniapp封装文字提示气泡框toolTip组件 文字提示气泡框&#xff1a;toolTip 因为uniapp 中小程序中没有window对象&#xff0c;需手动调用 关闭 第一种办法关闭&#xff1a;this.$refs.tooltip.close() 第二种办法关闭&#xff1a;visible.sync false 移动端没有现成的toolTip组…

SpringBoot项目没有启动按键

问题一&#xff1a; pom文件正常&#xff0c;但是springboot包报红&#xff0c;同时Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found报红 解决办法&#xff1a; 无法识别使用哪个版本的 spring-boot-maven-plugin 包 <build><plugins>&…

Unity类银河恶魔城学习记录8-5 p81 Blackhole duration源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码、 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Blackhole_Skill_Controller.cs using System.Collections; using Syste…

CSS布局——Flexbox布局中的对齐方式

你好&#xff0c;我是小白Coding日志&#xff0c;一个热爱技术的程序员。在这里&#xff0c;我分享自己在编程和技术世界中的学习心得和体会。希望我的文章能够给你带来一些灵感和帮助。欢迎来到我的博客&#xff0c;一起在技术的世界里探索前行吧&#xff01; justify-conten…