15 软专

news/2024/4/27 0:40:35/文章来源:https://blog.csdn.net/m0_46335449/article/details/128044947

数据结构

第一题 判断是是否为图

请设计一个算法判断无向图G是否为一棵树,若是树,返回1,否则返回0

思路

  • 判断一个图是否为树需要两个条件

    • 只有一个连通图,且该连通图包含所有顶点
    • 边数与顶点数构成关系 边数等于顶点数-1 anum = vnum-1
  • 实现:

    • 深度优先遍历,多添加两个参数,遍历整个图的所有顶点以及边
    • 边的遍历需要注意一下,只要有这条边便遍历,这里是唯一和深度优先遍历模板有较大差别的地方
    • 此后再判断这条边所在顶点是否访问过,未访问进行深度优先遍历的递归实现

代码:

//思路:若该图为数,则该图为连通图,且顶点数-1 = 边数,深度优先typedef struct MGraph{int vex[maxsize];int edge[maxsize][maxsize];int vexnum, edgenum;
}MGraph; int visited[maxsize] = {0};
void DFS(MGraph *G, int v, int &vnum, int &anum){visited[v] = 1;vnum++;for(int i = 0; i < G->vexnum; i++){if(G->edge[v][i] == 1){anum++;if(visited[i] == 0){DFS(G,i,vnum,anum);}}}
} bool judgetree(MGraph *G){int vnum = 0, anum = 0;DFS(G,0,vnum,anum);if(vnum == G->vexnum && 2*(vnum-1) == anum){printf("是一棵树"); return true;}else{printf("不是一棵树"); return false;}
}

程序设计

第一题 输出10*10的螺旋矩阵

输出螺旋矩阵

思路:

  • 把矩阵分为很多个环,双重for循环实现,第一重循环矩阵存在多少个环就遍历多少次,注意 k <= N/2 对于奇数的环,最后一个环是一个数也得考虑进去
  • 第二重循环需要每次添加矩阵的一条边,依次进行模拟即可,注意下标之间的关系

代码:

void spiralMatric(int n){int i=0,j=0,k=0;int A[10][10];int count = 1;for(k = 0; k <= n/2; k++){		//每次输出一个矩阵环for(i = k; i < n-k; i++){	//最顶行 A[k][i] = count++;}for(j=k+1; j < n-k-1; j++){	//最右列A[j][n-k-1] = count++;}for(i=n-k-1; i > k; i--){	//最下行A[n-k-1][i] = count++;}for(j = n-k-1; j >k; j--){	//最左列A[j][k] = count++;}}for(i=0; i < n; i++){for(j=0; j < n; j++){printf("%-4d",A[i][j]);}printf("\n");}
} 

第二题 输出子集

2、编写一个包含N个整数的几何S,编写函数求S的所有元素个数为M个的子集

思路:

  • 直接套用求子集的模板,然后计数,如果子集中元素个数与题目给的相同,就输出

代码:

void findchild(int A[], int n, int m){int num = 1<<n;for(int i =0; i < num; i++){int sub[m];int count=0;for(int j = 0; j < n; j++){if(i & (1 << j)){sub[count] = A[j];count++;}}if(count == m){printf("{ %d", sub[0]);for(int j = 1; j < m; j++){printf(" ,%d ",sub[j]);}printf("}\n"); }}
} 

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

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

相关文章

HTML PDF 查看器--RAD PDF 3.33 FOR ASP.NET

RAD PDF 的主要特点 基于 HTML 的 PDF 阅读器 客户端 PDF 编辑器 功能丰富的 PDF 表单填写器 交互式 PDF 表单设计器 保护 PDF 内容 签署和认证 PDF 文件 广泛的兼容性 & 在您的服务器上 将 PDF 集成到您的工作流程中 使用 ASP.NET 或 ASP.NET Core / 5 / 6 破解版RAD PDF…

检索系统设计方案(重构)

记一次系统重构设计背景介绍设计步骤架构图介绍架构设计注意点总结背景介绍 搜索链路主要部分 搜索引擎链路都包含这三部分&#xff0c;数据源、搜索引擎服务、搜索业务。 是不是很简单&#xff0c;感觉搜索也没那么难&#xff1f; 搜索链路确实都包括这三部分&#xff0c;…

详解:网络虚拟化卸载加速技术的演进

在传统的应用场景中&#xff0c;服务器资源过剩情况普遍&#xff0c;为了充分利用服务器资源&#xff0c;产生了虚拟化技术。虚拟化技术以牺牲部分效率为代价提升了资源的使用率&#xff0c;将原来需要硬件完成的工作&#xff0c;通过软件模拟的方式&#xff0c;满足多个云租户…

软件测试员如何在恶劣的内卷环境下脱颖而出?

内卷&#xff0c;是现在热度非常高的一个词汇&#xff0c;随着热度不断攀升&#xff0c;隐隐到了“万物皆可卷”的程度。 我一个很要好的朋友&#xff0c;现在就读大三&#xff0c;像很多大学生一样面临着能否顺利毕业的压力和考证的焦虑&#xff0c;看着寝室四个人每天都在玩&…

ShellBrowser Delphi,Delphi组件功能和工具

ShellBrowser Delphi,Delphi组件功能和工具 ShellBrowser基本上被描述为集合的一部分&#xff0c;它能够为用户和开发人员提供Delphi的程序员&#xff0c;以便轻松灵活地访问windows shell性能。ShellBrowserComponents Delphi的使用基本上是能够模拟windows资源管理器的变体。…

gitlab-runner 的安装使用(含 .gitlab-ci.yml 的简单使用)

简介 GitLab Runner 是一个开源项目&#xff0c;用于运行您的作业并将结果发送回 GitLab。它与 GitLab CI 一起使用&#xff0c;GitLab CI 是 GitLab 随附的开源持续集成服务&#xff0c;用于协调作业。 简单理解就是一个服务放在那儿&#xff0c;当你提交代码时&#xff0c;…

Revit修改:网格角度,体量轮廓,梁随斜板

一、Revit中使幕墙系统网格改变角度 绘制幕墙系统时&#xff0c;若幕墙系统出现如下图情况&#xff1a; 若想改变该网格的角度&#xff0c;使其与该幕墙上下边界平行或垂直则选中该幕墙&#xff0c;修改属性栏的中的网格角度。如下图所示&#xff1a; 修改完所需角度后&#xf…

【kafka】五、kafka工作流程

kafka工作流程 工作流程 kafka中消息是以topic进行分类的&#xff0c;生产者生产消息&#xff0c;消费者消费消息&#xff0c;都是面向topic的。 topic是逻辑上的概念&#xff0c;而partition是物理上的概念&#xff0c;每一个partition对应一个log文件&#xff0c;该log文件…

QT中的OpenGLWidget

1、在生成的UI中&#xff0c;通过控件OpenGL Widget来布置相应的空间&#xff08;后续讲通过promoted widget将此控件与派生的OpenGLWidget进行绑定&#xff09; 2、添加一个widget类&#xff0c;该类派生于 QOpenGLWidget, QOpenGLFunctions_*_*_Core&#xff08;*代表版本号…

基于VGG与LSTM实现针对图片的问答任务 数据+代码 可以作为毕设

任务描述:本教程将通过深度学习的方式实现一个简单的视觉问答模型,视觉问答的任务内容是将一张图片和一个自然语言问题作为输入,结合这两种信息,机器生成一条自然语言答案。本教程通过数据准备,视觉问答模型构建,视觉问答模型训练,视觉问答模型评估,视觉问答模型预测等…

嵌入式驱动初级-字符设备驱动基础

文章目录前言一、驱动学习预备知识1.什么是设备驱动程序2.向内核添加新功能方法2.1新功能源码与Linux内核源码不在同目录下2.2在Ubuntu下加载和删除ko文件步骤2.3在开发板下加载和删除ko文件步骤2.4内核模块基础代码解析二、字符设备驱动框架2.1Linux内核对设备的分类2.2字符设…

Python(PyQt5)制作帮助文档查看器(可显示后缀名为md的文件)同时显示文本和图片

先看完整效果图: 帮助文档查看器是很多程序中必备要素,而利用Qt中的QTreeView组件可以很方便的查看文件,而QTextBrowser可以直接显示格式化的MarkDown文本。因此可以利用这两个组件制作一个帮助文件查看器。 未优化 效果图: 问题优化: 你会发现QT treeView列宽设置不成功问题…

2023年系统规划与设计管理师-第二章信息技术知识

1. 软件工程 2. 面向对象 3. 开发模型 4. 开发方法 4.1 敏捷开发方法 4.2 RUP 5. 数据仓库和网络技术 5.1 网络七层结构 5.2 各设备位于哪一次 5.3 各层的协议 5.4 TCP分层 5.5 IPv6 VS IPv4 5.6 IPv4 &#xff1a;A类、B类、C类地址的划分 A类地址的第一组数字为1&#xff5…

255-261BFC,媒体的类型,媒体的特性,浏览器前缀,媒体查询,逻辑操作符,

◼ 有时候可能会看到有些CSS属性名前面带有:-o-、-xv-、-ms-、mso-、-moz-、-webkit- ◼ 官方文档专业术语叫做:vendor-specific extensions(供应商特定扩展) ◼ 为什么需要浏览器前缀了?  CSS属性刚开始并没有成为标准,浏览器为了防止后续会修改名字给新的属性添加了浏…

软件测试面试,一定要准备的7个高频面试题(附答案,建议收藏)

收集了2022年最新的面试题后&#xff0c;负责就业的黑马讲师们整理出了7个高频出现的面试题&#xff0c;一起来看看。 高频问题1&#xff1a;请自我介绍下&#xff1f; 高频问题2&#xff1a;请介绍下最近做过的项目&#xff1f; 高频问题3&#xff1a;请介绍下你印象深刻的…

光学测量精度极限—光谱共焦位移传感器的六大行业应用

科技的不断发展&#xff0c;在半导体&#xff0c;高精密制造领域中都是采用微米及以上的加工工艺&#xff0c;并与之匹配高精度测量技术进行品质控制。光谱共焦的测量原理是一束白光经过镜头将不同的波长聚焦到光轴上&#xff0c;色散地形成一条彩虹状分布带&#xff0c;照射到…

力合精密装备科技:操纵盒按键说明

使用摇杆&#xff08;操纵盒&#xff09;&#xff1a; 不同的控制系统配备不同样式的操作杆&#xff0c;操作杆最常用的功能是用来手动移动机器来进行测量操作&#xff1b; 一般的操作杆上包含以下功能键&#xff1a; 急停按钮&#xff1a;紧急情况时按下急停按钮停止机器运…

ORB-SLAM2 ---- Tracking::TrackReferenceKeyFrame函数

目录 1.函数作用 2.步骤 3.code 4.函数解析 4.1 将当前帧的描述子转化为BoW向量 4.2 总体解释 1.函数作用 用参考关键帧的地图点来对当前普通帧进行跟踪。 2.步骤 Step 1&#xff1a;将当前普通帧的描述子转化为BoW向量 Step 2&#xff1a;通过词袋BoW加速当前帧与参考帧…

Go运行时的内存分配器以及消耗指定大小的内存(C语言)

对于go语言在运行时的一些内存分配&#xff0c;想要详细的了解&#xff0c;我们会用到自带的runtime.MemStats&#xff0c;有很多具体的细节实现&#xff0c;而不是简单的只看任务管理器中的内存分配。 我们先来看下这个记录内存分配器的结构体 type MemStats struct {Alloc …

一文了解 Go 中的指针和结构体

一文了解 Go 中的指针和结构体前言指针指针的定义获取和修改指针所指向变量的值结构体结构体定义结构体的创建方式小结耐心和持久胜过激烈和狂热。 前言 前面的两篇文章对 Go 语言的基础语法和基本数据类型以及几个复合数据类型进行介绍&#xff0c;本文将对 Go 里面的指针和结…