当前位置: 首页 > news >正文

408数据结构算法模板

下面这份408数据结构算法模板耗时3天整理,希望对大家有用

408算法题概述

得分要点

  1. 会写结构定义(没有就自己写上)
  2. 写清楚解题的算法思想
  3. 描述清楚算法实现
  4. 最后写出时间和空间复杂度
关于改卷
1、改卷老师不会上机试
2、老师改的是扫描卷
3、图文结合帮助改卷老师理解,有利于给分。
考试手写代码注意事项:
1、命名应当规范(变量、函数命名要见文知意)
2、格式要标准(换行、缩进、对齐)
3、注释要写清楚,让阅卷老师快速读懂

算法答题特点

408中的算法题主要涉及基本的数据结构(线性表和树),但也可能会涉及图。题目形式多样,但通常需要使用常见算法(排序算法、查找算法、双指针技巧、树的遍历、DFS、BFS)来解决问题或情景。

算法题基本都是在现有的算法模板下按照题目的意思进行变形得到的

算法题答题技巧

题源来自LeetCode,一般是LeetCode的改编,一般相当于LeetCode的中等偏下难度的算法题,需要参加机试的同学可以顺便带掉408算法题,如果目标院校没有机试408算法需要单独准备,如果算法想拿高分题还是要刷题的,如果不想刷题,暴力解(几层for循环)也能拿到一半分,刷题是很耗时间的,复习时间紧的建议放弃,想拿满分或者高分的建议刷题。

以上内容仅作为参考,不作为复习建议

原文传送门:

数据结构算法模板icon-default.png?t=N7T8https://www.lucenczz.top/article/af9dbf29-83b5-417a-ac0a-adbb6e721e02

408算法模板介绍

这份算法模板是按照数据结构课本大纲整理的,基本上涵盖了大部分需要用到的手写代码,一共分为21个部分,比如第一部分是

考虑到很多人不会写结构体定义,这份模板中帮大家整理了结构体定义:

然后知道定义之后,就会给出一些经常需要用到的模板比如线性表有这些常用的操作:

以上只是以顺序表举例,模板中还包括了单链表的结构体定义和基本操作,双链表的结构点定义和基本操作,栈,队列,串,树和图还有排序算法等等

对于一些重要的算法,我还整理了一些可以实际运行的C语言版本代码,以及测试用例,比如比如图的深度优先搜索算法:

下面就是我调试过,保证可以运行的C语言代码:

#include <stdio.h>
#include <stdlib.h>#define maxSize 100 // 定义邻接表的最大大小typedef struct ArcNode {int adjvex; // 该边所指向的节点的位置struct ArcNode *nextarc; // 指向下一条边的指针int info; // 该边的相关信息(如权值)
} ArcNode;typedef struct {char data; // 定点信息ArcNode *firstarc; // 指向第一条边的指针
} VNode;typedef struct {VNode adjlist[maxSize]; // 邻接表int n, e; // 定点数和边数
} AGraph; // 图的邻接表类型int visit[maxSize]; // 定义一个全局数组,用于标记节点是否被访问过void dfs(AGraph *G, int v) {ArcNode *p;visit[v] = 1; // 标记节点v已被访问printf("%d ", v); // 输出节点v的值p = G->adjlist[v].firstarc; // 让p指向顶点v的第一条边while (p != NULL) {if (visit[p->adjvex] == 0) { // 如果节点未被访问,则递归遍历该节点dfs(G, p->adjvex);}p = p->nextarc; // 继续遍历下一条边}
}int main() {AGraph G;int i, j, k;G.n = 6; // 定点数为6G.e = 7; // 边数为7// 初始化邻接表for (i = 0; i < G.n; i++) {G.adjlist[i].data = i;G.adjlist[i].firstarc = NULL;}// 构造邻接表int edges[7][2] = {{0, 1}, {0, 2}, {1, 3}, {1, 4}, {2, 4}, {3, 5}, {4, 5}};for (k = 0; k < G.e; k++) {i = edges[k][0];j = edges[k][1];// 头插法插入边ArcNode *p = (ArcNode *)malloc(sizeof(ArcNode));p->adjvex = j;p->nextarc = G.adjlist[i].firstarc;G.adjlist[i].firstarc = p;// 无向图需要插入反向边p = (ArcNode *)malloc(sizeof(ArcNode));p->adjvex = i;p->nextarc = G.adjlist[j].firstarc;G.adjlist[j].firstarc = p;}// 初始化visit数组for (i = 0; i < G.n; i++) {visit[i] = 0;}printf("深度优先搜索结果:");dfs(&G, 0); // 从节点0开始深度优先搜索return 0;
}

可以看到我在其中给出了测试用例。并且我还整理了pdf版方便大家打印查看,以上资料获取没有任何门槛!

再发一遍传送门:

数据结构算法模板icon-default.png?t=N7T8https://www.lucenczz.top/article/af9dbf29-83b5-417a-ac0a-adbb6e721e02

以上代码均为了帮助大家理解,如果大家有更权威的代码模板,可以参照更权威版本。创作不易,给个小心心支持以下吧。

相关文章:

408数据结构算法模板

下面这份408数据结构算法模板耗时3天整理&#xff0c;希望对大家有用 408算法题概述 得分要点 会写结构定义&#xff08;没有就自己写上&#xff09;写清楚解题的算法思想描述清楚算法实现最后写出时间和空间复杂度 关于改卷 1、改卷老师不会上机试 2、老师改的是扫描卷 3、…...

Mysql--索引分类

Mysql--索引分类 1. 索引分类2. 聚集索引&二级索引 1. 索引分类 在MySQL数据库&#xff0c;将索引的具体类型主要分为以下几类&#xff1a;主键索引、唯一索引、常规索引、全文索引。 2. 聚集索引&二级索引 而在在InnoDB存储引擎中&#xff0c;根据索引的存储形式&am…...

AutoTimes:通过大语言模型的自回归时间序列预测器

论文标题&#xff1a; AutoTimes: Autoregressive Time Series Forecasters via Large Language Models 作者&#xff1a;Yong Liu, Guo Qin, Xiangdong Huang, Jianmin Wang, Mingsheng Long 链接&#xff1a;https://arxiv.org/abs/2402.02370 机构&#xff1a;清华大学 …...

记录 | go与C/C++交互

Go语言是类C的语言&#xff0c;与C语言有着千丝万缕的联系&#xff0c;在Go语言的代码中可以直接调用C语言代码&#xff0c;但不支持直接调用 C。 Go 调用 C/C 的方式&#xff1a; C&#xff1a;直接调用 C API&#xff1b;C&#xff1a;通过实现一层封装的 C 接口来调用 C 接…...

B3623枚举排列

题目描述 今有 n 名学生&#xff0c;要从中选出 k 人排成一列拍照。 请按字典序输出所有可能的排列方式。 输入格式 仅一行&#xff0c;两个正整数 n,k。 输出格式 若干行&#xff0c;每行 k 个正整数&#xff0c;表示一种可能的队伍顺序。 输入输出样例 输入 #1复制 …...

vuex怎么防止数据刷新丢失?

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式和库。它采用集中式存储管理应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化。为了防止 Vuex 中的数据在刷新时丢失&#xff0c;你可以采取以下策略&#xff1a; 持久化插件&#xff1a…...

OpenGL ES 渲染 NV21、NV12、I420、YV12、YUYV、UYVY、I444(建议收藏)

本文主要讲解常见的 YUV 格式图像渲染方式,如果对 YUV 格式不是很熟悉的同学可以翻看旧文一文掌握 YUV 图像的基本处理,YUV 格式的介绍这里不再展开。 渲染 NV21、NV12 格式图像 NV21、NV12 可以看成同一种结构,区别只是 uv 的交错排列顺序不同。 渲染 NV21/NV12 格式图像…...

云计算的两地三中心和灾备介绍

两地三中心是指在不同的地理位置建立两个数据中心和一个灾备中心&#xff0c;其中一个数据中心为主数据中心&#xff0c;另一个数据中心为备用数据中心&#xff0c;灾备中心则用于备份数据和在主数据中心或备用数据中心发生故障或灾难时提供应急支持。 异地灾备则是指在不同的地…...

Spring Bean

Spring的配置方式 1、xml配置文件 2、基于注解的方式 3、基于Java的方式 Spring Bean的生命周期 1、通过构造器或工厂方法创建bean实例 2、为bean的属性赋值 3、调用bean的初始化方法 4、使用bean 5、当容器关闭时&#xff0c;调用bean的销毁方法 Spring inner beans …...

Linux的时间操作

当涉及到时间操作时&#xff0c;Linux提供了一系列函数和结构体来处理时间的获取、转换和操作。 time_t 别名 time_t 是 C/C 中用来表示时间的类型&#xff0c;通常被定义为整数类型。它通常用来存储从纪元&#xff08;通常是1970年1月1日&#xff09;到某一特定时间点之间的…...

2024-02-21 作业

作业要求&#xff1a; 复习课上内容 //已完成结构体字节对齐&#xff0c;64位没做完的做完&#xff0c;32位重新都做一遍&#xff0c;课上指定2字节对齐的做一遍&#xff0c;自己验证 //已完成两种验证大小端对齐的代码写一遍复习指针内容 //已完成完善顺序表已写出的…...

平台组成-监控服务

监控服务和其他服务不同&#xff0c;不是一个单一的微服务&#xff0c;准确来说是一个体系。每个微服务都集成了Actuator&#xff0c;通过Actuator对外提供微服务的运行状况。关于Actuator大家可以阅读这篇文章。《Spring boot——Actuator 详解》 ​ 其上是Micrometer&…...

探索分布式强一致性奥秘:Paxos共识算法的精妙之旅

提到分布式算法&#xff0c;就不得不提 Paxos 算法&#xff0c;在过去几十年里&#xff0c;它基本上是分布式共识的代名词&#xff0c;因为当前一批常用的共识算法都是基于它改进的。比如&#xff0c;Fast Paxos 算法、Cheap Paxos、Raft 算法等。 由莱斯利兰伯特&#xff08;L…...

使用 ES|QL 优化可观察性:简化 Kubernetes 和 OTel 的 SRE 操作和问题解决

作者&#xff1a;Bahubali Shetti 作为一名运营工程师&#xff08;SRE、IT 运营、DevOps&#xff09;&#xff0c;管理技术和数据蔓延是一项持续的挑战。 简单地管理大量高维和高基数数据是令人难以承受的。 作为单一平台&#xff0c;Elastic 帮助 SRE 将无限的遥测数据&#…...

Docker 第十九章 : 阿里云个人镜像仓使用

Docker 第十九章 : 阿里云个人镜像仓使用 本章知识点: 如何创建镜像库,如何设置密码,如何登录与退出个人镜像仓,如何本地打镜像,如何将本地镜像推送到个人镜像库。 背景 在项目YapiDocker部署中,因读取mongo:latest 版本不一致,导致后续执行步骤的异常。遇到此场景…...

二、系统知识笔记-系统架构概述

一、系统架构定义 系统架构是指对一个系统的整体结构和组成部分进行描述和规划的过程。系统架构定义决定了系统的设计、开发和实施过程中的关键方向和决策。是系统的骨架和根基&#xff0c;支撑和链接各个部分&#xff0c;包括组件、连接件、约束规范以及指导这些内容设计与演…...

【高德地图】Android高德地图绘制标记点Marker

&#x1f4d6;第4章 Android高德地图绘制标记点Marker ✅绘制默认 Marker✅绘制多个Marker✅绘制自定义 Marker✅Marker点击事件✅Marker动画效果✅Marker拖拽事件✅绘制默认 Infowindow&#x1f6a9;隐藏InfoWindow 弹框 ✅绘制自定义 InfoWindow&#x1f6a9;实现 InfoWindow…...

每天一个知识点 - 如何快速熟悉后端项目

入职一家新公司的时候&#xff0c;不可避免的就是接触到新公司的项目&#xff0c;有些项目一启动就是好几年&#xff0c;业务功能极其复杂&#xff0c;下面我总结几个方法让大家快速熟悉后端项目&#xff08;图文结合&#xff09; 用例图简析 用例是系统中的一个功能单元&…...

如何将cocos2d-x js打包部署到ios上 Mac M1系统

项目环境 cocos2d-x 3.13 xcode 12 mac m1 big sur 先找到你的项目 使用xcode软件打开上面这个文件 打开后应该是这个样子 执行编译运行就好了 可能会碰到的错误 在xcode11版本以上都会有这个错误&#xff0c;这是因为iOS11废弃了system。 将上面代码修改为 #if (CC_TARGE…...

pdffactory pro 8中文破解版

详细介绍 PdfFactory&#xff0c;PDF文档虚拟打印机&#xff0c;无须Acrobat即可创建Adobe PDF文件&#xff0c;创建PDF文件的方法比其他方法更方便和高效。支持将多个文档整合到一个PDF文件、增加字体和便签、PDF加密、去水印、压缩优化。 FinePrint&#xff0c;Windows虚拟…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...

面试高频问题

文章目录 &#x1f680; 消息队列核心技术揭秘&#xff1a;从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"&#xff1f;性能背后的秘密1.1 顺序写入与零拷贝&#xff1a;性能的双引擎1.2 分区并行&#xff1a;数据的"八车道高速公路"1.3 页缓存与批量处理…...

jdbc查询mysql数据库时,出现id顺序错误的情况

我在repository中的查询语句如下所示&#xff0c;即传入一个List<intager>的数据&#xff0c;返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致&#xff0c;会导致返回的id是从小到大排列的&#xff0c;但我不希望这样。 Query("SELECT NEW com…...