寒假作业1

1、栈和队列的区别?
栈:先进后出,队列:先进先出栈:只允许在一端进行插入和删除队列:允许在队尾插入,队头删除的线性结构都是操作受限的线性表,插入和删除都只能在端点处进行,对于栈,只允许在一端进行插入和删除,该端称为栈顶,导致栈的特点为先进后出对于队列,允许在队尾插入队头删除,导致队列的特点为先进先出

2、数组和链表的区别?
两者都属于线性结构存储结构:数组顺序存储(使用一段连续的存储空间),逻辑相邻物理也相邻;链表链式存储(任意一段空间),逻辑相邻物理不一定相邻时间复杂度:数组插入删除O(n),修改查找O(1),所以数组适合查找修改;链表插入删除为O(1),修改查找O(n),链表更适合插入和删除访问:数组支持随机访问,可以通过下标进行;链表不支持随机访问,必须从头结点开始遍历数组静态分配内存,链表动态分配内存数组的存储密度>链表的存储密度

3、快速排序的思想
在一个无序的序列中选取一个任意的基准元素pivot,利用pivot将待排序的序列分成两部分,前面部分元素均小于或等于基准元素,后面部分均大于或等于基准元素,然后采用递归的方法分别对前后两部分重复上述操作,直到将无序序列排列成有序序列。

4、头结点和头指针的区别
相同点:在链表中都可以找到第一个节点,头结点的指针域就是头指针头指针是虚设的节点,可以使用数据域表示链表长度,也可以不使用数据域,指针域指向第一个节点,第一个节点是实际存储数据元素的节点。头指针本质上是一个指针,用于记录第一个节点的地址。头节点本质上是个节点,是指链表指向第一个结点的指针头指针是指链表指向第一个结点的指针,若链表有头结点,则是指向头结点的指针,头指针具有标识作用,无论链表是否为空,头指针均不为空,头指针是链表的必要元素头结点是为了操作的统一和方便而设立的,放在第一个元素的结点之前

5、static 关键字的作用
作用:延长生命周期
static 修饰全局变量默认结果是 0,内存在静态区
static 修饰局部变量,延长生命周期,效果类似全局变量注意: static 延长的是生命周期,不是作用域,依旧是局部变量,生命周期延长至整个文件
static 修饰函数,把函数的生命周期延长至整个文件,不能跨文件使用iv> static 和指针结合注意: 不可以使用 static 类型的指针,指向 auto 的变量地址,static 先分配内存auto 后分配内存


6、二叉树的遍历方式有哪些?如何销毁一个二叉树?
前序:左根右;中序:根左右;后序:左右根
可以通过后序完全销毁二叉树

7、队列的特点,什么是循环队列?
特点:先进先出,尾进头出,线性表循环队列是为了解决假溢出问题,能更充分的利用所分配的空间

8、如何使用C语言实现单向链表
单向链表是链式存储数据的容器,由数据域和指针域组成定义一个包含数据域和指针域的链表结构体再定义一个头结点,指针域指向NULL,数据域可以为链表长度需要插入新结点时令新节点指针域指向头结点的下一个结点,头结点指针域指向新结点。

9、C语言中宏定义的作用
宏定义是一种预处理技术,可以在程序中定义一些常量、函数、代码块等宏定义可以简化代码,提高代码的可维护性,可以通过宏定义实现条件编译。

10、什么是野指针?
指针没有初始化也没有指向null 该指针就是野指针

11、什么是指针
指针是用于存放内存地址的变量,这意味着指针可以用来定位到其他变量的位置,从而间接地控制这些变量。

12、const的作用
const修饰的变量不可以改变
const修饰的全局变量内存在静态区的只读段
const修饰的局部变量内存在栈区
const修饰指针
const int *p 值不可以改变,指向可以改变
int * const p 值可以改变,指向不可以改变
const int * const p 指向和值都不可以改变

13、C语言中的递归函数有什么优缺点
优点:
代码更简洁
可读性好
可以将问题划分为更小的子问题,使复杂的问题简单化
缺点:
时间和空间消耗比较大      
调用栈可能会溢出      
难以调试

14、如何用宏写一个二者大小判断
#define max(a,b) (a>b)?a:b

15、值传递和地址传递的区别
值传递:
值传递的是值
形参的改变不会影响实参
形参和实参分别占用存储空间

地址传递
传递的地址
形参的改变会影响实参
形参和实参公用同一片内存

16、while  do...while 的区别
while 先判断后执行,至少执行0次,适用循环次数不明确的条件循环
do...while 先执行后判断,至少执行1次,适用于循环次数不明确的条件循环

17、在一个不知道头结点的单向链表中,删除一个指定节点(非尾节点)
将当前节点的后一个节点的数据域赋值到该节点的数据域中,然后删除下一个节点

18、指针与引用的区别
指针:存储地址的变量
引用:引用就是个别名
指针可以先定义后指向,而引用必须定义的同时初始化
2、指针定义需要申请空间,而引用不需要
3、指针可以改变(目标)指向,而引用一旦指定目标就不能被改变
4、有指针数组但是没有引用数组(主要原因:引用不是数据类型)
5、有二级指针(有指针的指针),而引用没有二级引用(没有引用的引用)

19、C语言中的结构体和C++中的结构体的区别
1> C语言中的结构体在C++依然适用
2> C++中的结构体可以有函数,C语言不可以
3> C++中的结构体在定义类型时可以给变量来个初始值,而C语言不可以
4> C++中的结构体在用结构体类型定义变量时,可以省略关键字struct不写,而C语言不可以
5> C++中的结构体的成员有访问权限,而c语言没有访问权限
6> C++中的结构体可以继承,而c语言没有
7> C++中的结构体中有特殊的成员函数,而c语言没有

20、谈谈C++中的const
const修饰表示不能被更改的值,在C++中有着常对象和常成员函数,常对象表示该对象内的所有数据不能被修改,常成员函数表示该成员函数不能对数据成员进行修改操作。非常对象可以调用非常成员函数和常成员函数,优先调用非常成员函数,常对象只能调用常成员函数。如果想修改常成员函数中的数据成员,可以使用multable修饰该数据成员

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

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

相关文章

02-03

内核提供的通信方式 1、有名管道和无名管道 有名管道和无名管道都属于管道通信,通过在内核空间创建一个特殊的文件(管道文件),一个进程将数据写入管道,另一个进程从管道中读取数据,从而实现通信。管道文件…

力扣热门100题刷题笔记 - 2.两数相加

力扣热门100题 - 2.两数相加 题目链接:2.两数相加 题目描述: 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返…

图书|基于Springboot的图书管理系统设计与实现(源码+数据库+文档)

图书管理系统目录 目录 基于Springboot的图书管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、个人中心 2、管理员管理 3、用户管理 4、图书出版社管理 5、公告类型管理 6、所在书架管理 7、图书类型管理 8、论坛管理 9、公告信息管理 10、图书信…

【数据结构】(分治策略)中位数的查询和最接近点对问题

中位数查询: 寻找一组字符串中第k小的数,返回其值和下标。 不可以有重复值(在缩小规模的时候,会导致程序死循环) 相对位置的转换体现了分治策略的思想。> 划分函数 int partition(int *nums,int left, int rig…

NuxtJS3配置多环境变量

1.在根目录添加开发环境.env.development # 本地环境 NODE_ENV development VUE_APP_NUXT_API_URL /api NUXT_BASE_PORT 3000 NUXT_BASE_LINK http://192.168.21.80:6000 NUXT_SYSTEM_TITLE xx管理系统2.在根目录添加测试环境.env.test # 测试环境 NODE_ENV test NUXT_…

Jmeter 自动化性能测试常见问题汇总

一、request 请求超时设置 timeout 超时时间是可以手动设置的,新建一个 http 请求,在“高级”设置中找到“超时”设置,设置连接、响应时间为2000ms。 1. 请求连接超时,连不上服务器。 现象: Jmeter表现形式为&…

SSL证书过期后网站是否能够正常访问?

SSL证书是确保网站数据传输安全和用户信任的重要组成部分。然而,一旦SSL证书过期,网站是否依然能够正常访问呢?本文将详细探讨SSL证书过期后对网站的影响以及相应的解决方法。 SSL证书过期后,网站的状态将发生以下变化&#xff1a…

作为开发人的我们,怎么可以不了解这些?

​​​​​​​必备技能: 文章结尾处,有资源获取方式 Spring Spring是一个轻量级的Java框架,它可以用于开发各种Java应用程序。Spring提供了丰富的功能,包括IoC容器、AOP、事务管理、Web开发、安全管理等等。Spring的IoC容器可以…

SQL sever2008中创建用户并赋权

一、创建数据库dream CREATE DATABASE dream; 二、创建登录用户XZS 法一:使用SSMS创建 通过查询 sys.syslogins 系统视图来确定当前登录是否具有系统管理员权限。执行以下查询语句: SELECT name, isntname FROM sys.syslogins WHERE sysadmin 1;选…

初始mach-o文件及在项目中应用

本文字数:2250字 预计阅读时间:15分钟 01 认识mach-o的必要性 了解mach-o的结构可以帮助认识系统加载二进制文件的动态链接和静态链接。应用层面,使用initialize的c函数计算启动时间耗时也需要以mach-o的结构知识为铺垫。还可以用在使用clang…

2、排列重要性 Permutation Importance

您认为模型哪些特性是重要的? 文章目录 1、简介2、工作原理3、代码示例4、解释排列重要性1、简介 对于模型来说,我们可能会问的最基本的一个问题是:哪些特征对预测影响最大? 这个概念被称为特征重要性。 有多种方法可以衡量特征重要性。一些方法回答了上面提到的问题的微…

03-OpenFeign-请求传参设置

在使用OpenFeign作为接口调用时, 兼容RequestMapping 注解,通过动态代理的方式,对接口调用过程中的参数进行封装; 主要的接口传参类型,常用的以下四种: 1、默认RequestBody Json格式 // 服务方 RestCon…

思腾云计算中心 | ,基础设施完善,提供裸金属GPU算力租赁业务

2021年,思腾合力全资收购包头市易慧信息科技有限公司,正式开启云计算业务。思腾云计算中心占地2400平米,位于包头市稀土高新区,毗邻多家知名企业,地理位置优越,交通便利,是区内重要的信息化产业…

前端项目接口请求封装

封装写法一: // 封装接口请求函数 function request(url, method, data, headers) { return new Promise((resolve, reject) > { const xhr new XMLHttpRequest(); xhr.open(method, url); // 设置请求头 if (headers) { Object.keys(headers).forEach…

JavaScript中的“??“: 空值合并运算符

在JavaScript中,null和undefined是两个特殊的值,它们表示“无”或“不存在”。在处理这些值时,我们经常需要进行检查以避免出错。在ECMAScript 2021 (ES12)中,引入了一个新的运算符:空值合并运算符(Nullish…

怎么把几百M大小的视频做成二维码?扫码播放视频在线教程

怎么把几百M大小的视频做成一个二维码展示呢?通过二维码来作为视频的载体是现在很常用的一种手段,通过这种方式不仅成本比较低,而且传播速度也比较快,通过访问云端数据就可以播放视频。 视频二维码生成的方法一般会通过二维码生成…

C++模版初阶

前言 在本文我们将学习模版的基础知识点,了解泛型编程。 一、泛型编程 1、引入 我们如何实现一个通用的交换函数呢? 我们先看一段代码,如下: void Swap(int& left, int& right) {int temp left;left right;right te…

【DouYing Desktop】

I) JD 全日制大专及以上学历; 2. 3年以上的IT服务支持相关工作经验 3. 有较强的桌面相关trouble shooting与故障解决能力,能够独立应对各类型桌面问题; 4. 具备基础的网络、系统知识,能够独立解决常见的网络、系统等问题&#xf…

机器学习 | 如何利用集成学习提高机器学习的性能?

目录 初识集成学习 Bagging与随机森林 Otto Group Product(实操) Boosting集成原理 初识集成学习 集成学习(Ensemble Learning)是一种通过组合多个基本模型来提高预测准确性和泛化能力的机器学习方法。它通过将多个模型的预测结果进行整合或投票来做…

Linux 权限设置

修改文件权限:chmod 使用chmod可以修改文件权限 有两种使用格式:字母法与数字法 chmod 字母法的使用 角色说明: 角色 说明 u user, 表示该文件的所有者 g group, 表示用户组 o other, 表示其他用户 a all, 表示所有用户 权限设置说明: 操作符 说明 +