408数据结构算法模板
下面这份408数据结构算法模板耗时3天整理,希望对大家有用
408算法题概述
得分要点
- 会写结构定义(没有就自己写上)
- 写清楚解题的算法思想
- 描述清楚算法实现
- 最后写出时间和空间复杂度
关于改卷
1、改卷老师不会上机试
2、老师改的是扫描卷
3、图文结合帮助改卷老师理解,有利于给分。
考试手写代码注意事项:
1、命名应当规范(变量、函数命名要见文知意)
2、格式要标准(换行、缩进、对齐)
3、注释要写清楚,让阅卷老师快速读懂
算法答题特点
408中的算法题主要涉及基本的数据结构(线性表和树),但也可能会涉及图。题目形式多样,但通常需要使用常见算法(排序算法、查找算法、双指针技巧、树的遍历、DFS、BFS)来解决问题或情景。
算法题基本都是在现有的算法模板下按照题目的意思进行变形得到的
算法题答题技巧
题源来自LeetCode,一般是LeetCode的改编,一般相当于LeetCode的中等偏下难度的算法题,需要参加机试的同学可以顺便带掉408算法题,如果目标院校没有机试408算法需要单独准备,如果算法想拿高分题还是要刷题的,如果不想刷题,暴力解(几层for循环)也能拿到一半分,刷题是很耗时间的,复习时间紧的建议放弃,想拿满分或者高分的建议刷题。
以上内容仅作为参考,不作为复习建议
原文传送门:
数据结构算法模板https://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版方便大家打印查看,以上资料获取没有任何门槛!
再发一遍传送门:
数据结构算法模板https://www.lucenczz.top/article/af9dbf29-83b5-417a-ac0a-adbb6e721e02
以上代码均为了帮助大家理解,如果大家有更权威的代码模板,可以参照更权威版本。创作不易,给个小心心支持以下吧。
相关文章:

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

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

AutoTimes:通过大语言模型的自回归时间序列预测器
论文标题: AutoTimes: Autoregressive Time Series Forecasters via Large Language Models 作者:Yong Liu, Guo Qin, Xiangdong Huang, Jianmin Wang, Mingsheng Long 链接:https://arxiv.org/abs/2402.02370 机构:清华大学 …...
记录 | go与C/C++交互
Go语言是类C的语言,与C语言有着千丝万缕的联系,在Go语言的代码中可以直接调用C语言代码,但不支持直接调用 C。 Go 调用 C/C 的方式: C:直接调用 C API;C:通过实现一层封装的 C 接口来调用 C 接…...
B3623枚举排列
题目描述 今有 n 名学生,要从中选出 k 人排成一列拍照。 请按字典序输出所有可能的排列方式。 输入格式 仅一行,两个正整数 n,k。 输出格式 若干行,每行 k 个正整数,表示一种可能的队伍顺序。 输入输出样例 输入 #1复制 …...
vuex怎么防止数据刷新丢失?
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式和库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。为了防止 Vuex 中的数据在刷新时丢失,你可以采取以下策略: 持久化插件:…...
OpenGL ES 渲染 NV21、NV12、I420、YV12、YUYV、UYVY、I444(建议收藏)
本文主要讲解常见的 YUV 格式图像渲染方式,如果对 YUV 格式不是很熟悉的同学可以翻看旧文一文掌握 YUV 图像的基本处理,YUV 格式的介绍这里不再展开。 渲染 NV21、NV12 格式图像 NV21、NV12 可以看成同一种结构,区别只是 uv 的交错排列顺序不同。 渲染 NV21/NV12 格式图像…...
云计算的两地三中心和灾备介绍
两地三中心是指在不同的地理位置建立两个数据中心和一个灾备中心,其中一个数据中心为主数据中心,另一个数据中心为备用数据中心,灾备中心则用于备份数据和在主数据中心或备用数据中心发生故障或灾难时提供应急支持。 异地灾备则是指在不同的地…...
Spring Bean
Spring的配置方式 1、xml配置文件 2、基于注解的方式 3、基于Java的方式 Spring Bean的生命周期 1、通过构造器或工厂方法创建bean实例 2、为bean的属性赋值 3、调用bean的初始化方法 4、使用bean 5、当容器关闭时,调用bean的销毁方法 Spring inner beans …...
Linux的时间操作
当涉及到时间操作时,Linux提供了一系列函数和结构体来处理时间的获取、转换和操作。 time_t 别名 time_t 是 C/C 中用来表示时间的类型,通常被定义为整数类型。它通常用来存储从纪元(通常是1970年1月1日)到某一特定时间点之间的…...

2024-02-21 作业
作业要求: 复习课上内容 //已完成结构体字节对齐,64位没做完的做完,32位重新都做一遍,课上指定2字节对齐的做一遍,自己验证 //已完成两种验证大小端对齐的代码写一遍复习指针内容 //已完成完善顺序表已写出的…...
平台组成-监控服务
监控服务和其他服务不同,不是一个单一的微服务,准确来说是一个体系。每个微服务都集成了Actuator,通过Actuator对外提供微服务的运行状况。关于Actuator大家可以阅读这篇文章。《Spring boot——Actuator 详解》 其上是Micrometer&…...

探索分布式强一致性奥秘:Paxos共识算法的精妙之旅
提到分布式算法,就不得不提 Paxos 算法,在过去几十年里,它基本上是分布式共识的代名词,因为当前一批常用的共识算法都是基于它改进的。比如,Fast Paxos 算法、Cheap Paxos、Raft 算法等。 由莱斯利兰伯特(L…...

使用 ES|QL 优化可观察性:简化 Kubernetes 和 OTel 的 SRE 操作和问题解决
作者:Bahubali Shetti 作为一名运营工程师(SRE、IT 运营、DevOps),管理技术和数据蔓延是一项持续的挑战。 简单地管理大量高维和高基数数据是令人难以承受的。 作为单一平台,Elastic 帮助 SRE 将无限的遥测数据&#…...

Docker 第十九章 : 阿里云个人镜像仓使用
Docker 第十九章 : 阿里云个人镜像仓使用 本章知识点: 如何创建镜像库,如何设置密码,如何登录与退出个人镜像仓,如何本地打镜像,如何将本地镜像推送到个人镜像库。 背景 在项目YapiDocker部署中,因读取mongo:latest 版本不一致,导致后续执行步骤的异常。遇到此场景…...
二、系统知识笔记-系统架构概述
一、系统架构定义 系统架构是指对一个系统的整体结构和组成部分进行描述和规划的过程。系统架构定义决定了系统的设计、开发和实施过程中的关键方向和决策。是系统的骨架和根基,支撑和链接各个部分,包括组件、连接件、约束规范以及指导这些内容设计与演…...

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

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

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

pdffactory pro 8中文破解版
详细介绍 PdfFactory,PDF文档虚拟打印机,无须Acrobat即可创建Adobe PDF文件,创建PDF文件的方法比其他方法更方便和高效。支持将多个文档整合到一个PDF文件、增加字体和便签、PDF加密、去水印、压缩优化。 FinePrint,Windows虚拟…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...

招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...

[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG
TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码:HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...
【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统
Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...