数据结构与算法解析(C语言版)--搭建项目环境

本栏目致力于从0开始使用纯C语言将经典算法转换成能够直接上机运行的程序,以项目的形式详细描述数据存储结构、算法实现和程序运行过程。

参考书目如下:

        《数据结构C语言版-严蔚敏》

        《数据结构算法解析第2版-高一凡》

软件工具:

        dev-cpp


搭建项目环境

1、创建项目

打开dev-cpp,点击"文件"->"新建"->"项目",选择控制台应用中的C项目。

保存项目

保存main.c到同级目录下的src目录下

2、运行测试

点击编译按钮,确保没有问题,点击运行按钮,出现如下图则测试OK.

整理代码文件

创建main.h头文件,引入项目头文件以及书写项目中需要用到的宏定义。

#ifndef _MAIN_H
#define _MAIN_H#include <stdio.h>
#include <stdlib.h>
#include <time.h>#define TRUE  1
#define FALSE 0
#define OK    1
#define ERROR 0
#define INFEASIBLE -1   // 无意义 
#define OVERFLOW -2typedef int Status;
typedef int ElemType;#endif 

项目仓库地址

https://gitee.com/amyliyanice/data_struct.git

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

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

相关文章

synchronized 锁升级的原理

synchronized 锁升级的原理涉及以下几个步骤&#xff1a; 偏向锁&#xff1a;在第一次访问共享资源时&#xff0c;锁对象的对象头中的 threadid 字段为空&#xff0c;JVM 会让当前线程持有偏向锁&#xff0c;并将 threadid 设置为该线程的 ID。轻量级锁&#xff1a;如果多个线…

一文看懂MySQL 5.7和MySQL 8到底有哪些差异?

目录 ​编辑 引言 1、数据字典和系统表的变化 2、JSON支持的改进 3、新的数据类型 4、安全性增强 5、性能改进 6、InnoDB存储引擎的改进 结论 引言 MySQL作为最常用的开源关系型数据库管理系统之一&#xff0c;一直在不断发展和改进。随着时间的推移&#xff0c;MySQ…

【详细教程】关于如何使用GitGitHub的基本操作汇总GitHub的密钥配置 ->(个人学习记录笔记)

文章目录 1. Git使用篇1.1 下载安装Git1.2 使用Git 2. GitHub使用篇2.1 如何git与GitHub建立联系呢&#xff1f;2.2 配置公钥 1. Git使用篇 1.1 下载安装Git 点击 官网链接 后&#xff0c;进入Git官网&#xff0c;下载安装包 然后根据系统类型进行下载&#xff0c;一般为wind…

.NET Core 使用 System.Threading.Channels消息队列

System.Threading.Channels 是 .NET Core 中的一个新的同步通信机制&#xff0c;它提供了一种高效的方法来在多个线程之间共享数据。它比使用锁或信号量等传统同步机制更灵活、更高效&#xff0c;并且可以帮助您避免许多并发问题。下面是一个简单的示例&#xff0c;演示如何使用…

【PWN · 栈迁移|off-by-one|伪随机|爆破】[HDCTF 2023]Makewish

一道精巧、包含很多要点的题目 一、题目 二、思路浅析 通过ctypes酷通过伪随机数检测&#xff0c;没用srand指定随机种子时&#xff0c;默认srand(1)。 通过puts_name的off-by-one来泄露canary 进入vuln时&#xff0c;发现只能刚好填充到rbp前面&#xff0c;但是会将最后一个…

【AutoML】AutoKeras 的安装和环境配置(VSCode)

本地环境中已经有太多的工作配置了&#xff08;Python、Java、Maven、Docker 等等&#xff09;&#xff0c;为了不影响其他环境运行&#xff0c;我选择直接在 VSCode 中创建工作空间并配置好 AutoKeras&#xff08;反正最后也是要在 VSCode 中进行开发的&#xff09;。 打开 V…

尚硅谷大数据项目《在线教育之实时数仓》笔记005

视频地址&#xff1a;尚硅谷大数据项目《在线教育之实时数仓》_哔哩哔哩_bilibili 目录 第9章 数仓开发之DWD层 P031 P032 P033 P034 P035 P036 P037 P038 P039 P040 第9章 数仓开发之DWD层 P031 DWD层设计要点&#xff1a; &#xff08;1&#xff09;DWD层的设计依…

使用 OpenSSL 工具撰写 Bash 脚本进行密码明文的加密与解密

使用 OpenSSL 工具进行密码明文的加密与解密 Written By: Xinyao Tian 简介 本文档描述了使用 OpenSSL 工具在 Bash 脚本中对密码进行加密和解密的简单方式。 BASE64 的加密与解密脚本 使用 Base64 算法进行密码的加密 脚本名称为 encryptPasswd.sh, 脚本内容如下: #!/b…

什么是配电室电能监测系统?

为了保证电力系统的安全、稳定、经济运行成为了当务之急。配电室电能监测系统作为一种新兴技术&#xff0c;有效提高了配电室的运行管理水平&#xff0c;降低了电力系统的风险。接下来&#xff0c;小编来为大家介绍下配电室电能监测系统&#xff0c;一起来看下吧&#xff01; 一…

Centos MySQL --skip-grant-tables详解

跳过权限验证&#xff0c;导出数据备份 主机系统&#xff1a;Centos7 64位 数据库版本&#xff1a;MySQL5.7.40 使用–skip-grant-tables场景 1、忘记管理员密码 2、修改管理员密码 mysql -uroot -p显示错误内容如下&#xff1a; ERROR 1045 (28000): Access denied for …

【Java 进阶篇】Java ServletContext详解:获取MIME类型

MIME&#xff08;Multipurpose Internet Mail Extensions&#xff09;类型是一种标识文件类型的文本标签&#xff0c;通常用于指示浏览器如何处理Web服务器返回的文件。在Java Web应用程序中&#xff0c;ServletContext对象提供了一种方便的方法来获取文件的MIME类型。本篇博客…

vue页面父组件与子组件相互调用方法和传递参数值

vue页面父组件与子组件相互调用方法和传递参数值 父组件页面定义 <el-button type"text" icon"el-icon-refresh" click"refreshClick" slot"label"></el-button> <leftList leftClick"loadModelClick" r…

el-input输入校验插件(正则表达式)

使用方法&#xff1a;在main.js文件中注册插件然后直接在<el-input>加入‘v-插件名’ (1)在main.js文件&#xff1a; // 只能输入数字指令 import onlyNumber from /directive/only-number; Vue.use(onlyNumber); &#xff08;2&#xff09;在src/directive文件夹中 &a…

docker部署elk

目录 前言 一、创建程序工作路径 二、创建私有网络 三、部署elasticsearch 1.先搜速后下载 2.创建一个基础的容器&#xff08;此步骤是为了拷贝容器里的文件&#xff09; 3.拷贝文件到宿主机 3.1进入容器 3.2拷贝并授权 3.3删除基础容器 4.创建容器 5.访问9200测试 …

Redis入门指南学习笔记(2):常用数据类型解析

一.前言 本文主要介绍Redis中包含几种主要数据类型&#xff1a;字符串类型、哈希类型、列表类型、集合类型和有序集合类型。 二.字符串类型 字符串类型是Redis中最基本的数据类型&#xff0c;它是其他4种数据类型的基础&#xff0c;其他数据类型与字符串类型的差别从某种角度…

设计模式-访问者模式

访问者模式是一种行为设计模式&#xff0c;它允许你在不修改现有对象结构的情况下&#xff0c;定义新的操作。访问者模式通过将操作封装在一个访问者对象中&#xff0c;使得可以在不同的对象上执行不同的操作&#xff0c;从而实现了操作和对象的解耦。 在Java中&#x…

有关MySQL的联合查询

在 MySQL 中&#xff0c;联合查询&#xff08;也称为 JOIN 查询&#xff09;是一种用于将多个表中的数据联接在一起的操作。这使得你可以从多个表中获取相关的数据&#xff0c;并创建复杂的查询。 以下是一些常见的联合查询类型和示例&#xff1a; 内连接&#xff08;INNER J…

【Linux学习笔记】进程概念(上)

1. 冯诺依曼体系结构2. 操作系统的作用3. 进程 1. 冯诺依曼体系结构 如图&#xff0c;这是一个冯诺依曼体系结构简图 其中这里的存储器指的是内存&#xff01; 用通俗的话来解释这个图&#xff0c;就是数据从输入设备进入&#xff0c;然后进入到存储器&#xff0c;CPU从存储器…

神经网络气温预测

#引用所需要的库 import numpy as np import pandas as pd import matplotlib.pyplot as plt import torch import torch.optim as optim#优化器 #过滤警告 import warnings warnings.filterwarnings(“ignore”) %matplotlib inline featurespd.read_csv(‘temps.csv’) feat…

求矩阵高次幂的两种“另类”方法

文章目录 【方法一】运用哈密顿凯莱定理相关例题 【方法二】运用特征方程二阶矩阵求解通法三阶矩阵求解通法相关例题 市面上许多资料给出的计算矩阵高次幂的方法&#xff0c;无外乎有这几种&#xff1a; 分块矩阵求解高次幂&#xff1b;先求低次方幂&#xff0c;然后通过找规律…