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

我的数据结构c(给自己用的)

目录

顺序表:

链表:

栈:

队列:


我想在之后的大学数据结构课上需要自己写来做题,但每次都自己写,那太麻烦了,所以我就将这个博客来把所有的C语言的数据结构弄上去,

问我为什么不用GitHub,虽说也托管上去了,哈哈机房访问的GitHub太慢了!

顺序表:

头文件

#pragma once
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>//  队列先进先出typedef int QUDataType;typedef struct QueueNode
{struct QueueNode* next;QUDataType x;
}QueueNode;typedef struct QUEUE
{QueueNode* head;QueueNode* tail;
}Queue;//初始化
void QueueInit(Queue* pq);//入队列
void QueuePush(Queue* pq,QUDataType x);//出队列
void QueuePop(Queue* pq);//取头数据
QUDataType QueueFront(Queue* pq);//取尾数据
QUDataType QueueBack(Queue* pq);//有几个数据int QueueSize(Queue* pq);//是否为空bool QueueEmpty(Queue* pq);//打印
void Print(Queue* pq);

函数文件:

#define _CRT_SECURE_NO_WARNINGS 1
#include"main.h"void Checkcapacity(SL* pc)
{if (pc->size == pc->capacity){int newcapacity = pc->capacity == 0 ? 4 : pc->capacity * 2;SLDataType* str = (SLDataType*)realloc(pc->a, newcapacity * sizeof(SLDataType));if (str == NULL){perror("realloc");exit(-1);}}
}void print(SL* pc)
{int i = 0;for (i = 0; i < pc->size; i++){printf("%d ", pc->a[i]);}
}//回收空间
void SeqlistDestory(SL* pc)
{free(pc->a);pc->a = NULL;pc->capacity = pc->size = 0;
}void SeqListInit(SL* pc)
{pc->a = NULL;pc->size = 0;pc->capacity = 0;
}void SeqListPushback(SL* pc, SLDataType x)
{//如果没有空间或根本没有就增容:if (pc->size == pc->capacity){int newcapacity = pc->capacity == 0 ? 4 : pc->capacity * 2;SLDataType* str = (SLDataType*)realloc(pc->a,newcapacity*sizeof(SLDataType));if (str == NULL){perror("realloc");exit(-1);}pc->a = str;str = NULL;pc->capacity = newcapacity;}pc->a[pc->size] = x;pc->size++;
}void SeqlistPopback(SL* pc)
{if (pc->size == 0){printf("没有了喵~\n");return;}pc->a[pc->size - 1] = 0;pc->size--;
}void SeqlistPushfront(SL* pc, SLDataType x)
{if (pc->size == pc->capacity){int newcapacity = pc->capacity == 0 ? 4 : pc->capacity * 2;SLDataType* str = (SLDataType*)realloc(pc->a, newcapacity * sizeof(SLDataType));if (str == NULL){perror("realloc");exit(-1);}pc->a = str;str = NULL;pc->capacity = newcapacity;}pc->size += 1;for (int i = pc->size; i>=0; i--){pc->a[i+1] = pc->a[i];}pc->a[0]=x;
}void SeqlistPopfront(SL* pc)
{if (pc->size == 0){printf("没u删除的元素喵~\n");}int i = 1;for (i = i; i <= pc->size+1; i++){pc->a[i - 1] = pc->a[i];}pc->size -= 1;
}//插入数字
void Seqlistinsert(SL* pc, int pos, SLDataType x)
{Checkcapacity(pc);pc->size += 1;int i=pos;for (i = pos; i < pc->size; i++){pc->a[i] = pc->a[i - 1];}pc->a[pos - 1] = x;
}//查找数字()
int  Seqlistfind_bydata(SL* pc, SLDataType x)
{int i = 0;for (i; i < pc->size; i++){if (pc->a[i] == x){printf("返回第一个下标\n");return  i;}}printf("找不到\n");return -1;
}//删除指定数字 
void Seqlistdelet(SL* pc, SLDataType x)
{int i = 0;for (i = 0; i < pc->size; i++){if (x == pc->a[i]){for (i; i < pc->size; i++){pc->a[i] = pc->a[i + 1];}pc->size--;break;}}printf("没这个数字哦\n");return;
}


链表:

头文件:

#pragma once
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>//单链表的英文  Single linked listtypedef int SLLdatatype;typedef struct SListNode
{SLLdatatype  data;struct SListNode*next;
}SLL;//打印
void SLLprint(SLL* phead);//尾部存储 
void SLLpushback(SLL**phead,SLLdatatype x);//头部存储
void SLLpushfront(SLL** phead, SLLdatatype x);void SLLpushfront2(SLL** phead, SLLdatatype x);//尾部删除
void SLLpopback(SLL** phead);//头部删除
void SLLpopfront(SLL** phead);//查找
void SLL_find_print(SLL* phead, SLLdatatype x);//查下标
SLL* SLL_findpos(SLL* phead, SLLdatatype x);//  指定位置插入
void SLL_inset(SLL** phead, SLL* pos, SLLdatatype x);//指定位置删除
void SLL_pos_del(SLL** phead, SLL* pos);//销毁链表
void SLL_destory(SLL* *phead);

函数文件:

#define _CRT_SECURE_NO_WARNINGS 1
#include"main.h"SLL* creatnode( SLLdatatype x)
{SLL* newnode = (SLL*)malloc(sizeof(SLL));if (newnode == NULL){perror("malloc");exit(-1);}newnode->data = x;newnode->next = NULL;return newnode;
}//打印
void SLLprint(SLL* phead)
{/*SLL* cur = phead;*/while (phead != NULL){printf("%d ", phead->data);phead = phead->next;}printf("->NULL\n");
}void SLLpushback(SLL**phead,SLLdatatype x)
{SLL* newnode = (SLL*)malloc(sizeof(SLL));newnode->data = x;newnode->next = NULL;if (*phead == NULL){*phead = newnode;}else{SLL* tail = *phead;while (tail->next != NULL){tail = tail->next;}tail->next = newnode;}
}void SLLpushfront(SLL** phead, SLLdatatype x)
{SLL* newnode = (SLL*)malloc(sizeof(SLL));newnode->data = x;newnode->next = NULL;if (phead == NULL){*phead = newnode;}else{newnode->next = *phead;*phead = newnode;}}void SLLpushfront2(SLL** phead, SLLdatatype x)
{SLL* newnode = creatnode(x);newnode->next = *phead;*phead = newnode;
}//尾部删除
void SLLpopback(SLL** phead){SLL*tail = *phead;SLL* str = NULL;if (*phead==NULL){return ;}if (tail->next ==NULL){free(tail);*phead = NULL;}else{while (tail->next!=NULL){str = tail;tail = tail->next;}free(tail);tail = NULL;str->next = NULL;}
}//头部删除
void SLLpopfront(SLL** phead)
{if (*phead == NULL){return;}if ((*phead)->next == NULL){*phead = NULL;}else{SLL* front = *phead;(*phead)=(*phead)->next;free(front);front = NULL;}
}//找加打印
void SLL_find_print(SLL* phead, SLLdatatype x)
{if (phead == NULL){return;}while (phead->data!=x){if (phead->next== NULL){break;}phead = phead->next;}if (phead->next == NULL){printf("找不到喵~\n");}else{printf("%d\n", phead->data);}
}//查下标
SLL* SLL_findpos(SLL* phead, SLLdatatype x)
{if (phead == NULL){return NULL;}else{while (phead){if (phead->data == x){return phead;}phead = phead->next;}}printf("找不到\n");return NULL;
}//  指定位置插入
void SLL_inset(SLL** phead, SLL* pos, SLLdatatype x)
{if (*phead == NULL){return;}else{SLL* find = *phead;while (find){if (find->next == pos){SLL* newnode = creatnode(x);newnode->next = find->next;find->next = newnode;return;}find = find->next;}}
}//指定位置删除
void SLL_pos_del(SLL** phead, SLL* pos)
{if (*phead == NULL){return;}else{SLL* find = *phead;SLL* findpos = NULL;while (find){if (find->next == pos){findpos = find->next;find->next = findpos->next;free(findpos);findpos = NULL;return;}find = find->next;}}}//销毁链表
void SLL_destory(SLL** phead)
{if (*phead == NULL){return;}else{   while ((*phead)->next!=NULL){SLL* tailpos = *phead;SLL* tail = NULL;while (tailpos->next != NULL){tail = tailpos;tailpos = tailpos->next;}free(tailpos);tail->next = NULL;tailpos = NULL;}free(*phead);*phead = NULL;}
}


栈:

头文件:

#pragma once
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>typedef int  STDataType;typedef struct Stack
{STDataType* a;int top;int capacity;
}ST;//初始化栈
void StackIint(ST* ps);//销毁栈
void Stackdestory(ST* pc);//push
void StackPush(ST* ps, STDataType x);//pop
void StackPop(ST* ps);//取栈顶数据
STDataType Stacktop(ST* ps);//有多少数据
int StackSize(ST* ps);//判断是否为空
bool StackEmpty(ST* ps);int minStackGetMin(ST* obj);

函数:

#define _CRT_SECURE_NO_WARNINGS 1
#include"main.h"//初始化单链表
void StackIint(ST* ps)
{assert(ps);ps->a = NULL;ps->capacity = 0;ps->top = 0;
}//销毁栈
void Stackdestory(ST* pc)
{assert(pc);free(pc->a);pc->a = NULL;pc->capacity = pc->top = 0;
}//push
void StackPush(ST* ps, STDataType x)
{assert(ps);if (ps->capacity == ps->top){ps->capacity =ps->capacity== 0 ? 4 : 2 * ps->capacity;STDataType* temp = (STDataType*)realloc(ps->a, sizeof(STDataType) * ps->capacity);if (temp == NULL){printf("realloc fail\n");exit(-1);}ps->a = temp;}ps->a[ps->top] = x;ps->top += 1;}int minStackGetMin(ST* obj) {int i = 0;int min = obj->a[i];for (i = 1; i<obj->top; i++){if (obj->a[i] < min){min = obj->a[i];}}return min;
}//pop
void StackPop(ST* ps)
{assert(ps->top > 0);ps->top--;
}//取栈顶数据
STDataType Stacktop(ST* ps)
{assert(!StackEmpty(ps));return ps->a[ps->top - 1];
}//有多少数据
int StackSize(ST* ps)
{assert(!StackEmpty(ps));return ps->top;
}
//判断是否为空
bool StackEmpty(ST* ps)
{return ps->top == 0;
}


队列:

头文件:

#pragma once
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>//  队列先进先出typedef int QUDataType;typedef struct QueueNode
{struct QueueNode* next;QUDataType x;
}QueueNode;typedef struct QUEUE
{QueueNode* head;QueueNode* tail;
}Queue;//初始化
void QueueInit(Queue* pq);//入队列
void QueuePush(Queue* pq,QUDataType x);//出队列
void QueuePop(Queue* pq);//取头数据
QUDataType QueueFront(Queue* pq);//取尾数据
QUDataType QueueBack(Queue* pq);//有几个数据int QueueSize(Queue* pq);//是否为空bool QueueEmpty(Queue* pq);//打印
void Print(Queue* pq);

函数:

#define _CRT_SECURE_NO_WARNINGS 1
#include"main.h"//初始化
void QueueInit(Queue* pq)
{assert(pq);pq->head = NULL;pq->tail = NULL;
}void QueueDestory(Queue* pq)
{assert(pq);QueueNode* cur = pq->head;while (cur!=NULL){QueueNode* next = cur->next;free(cur);cur = next;}pq->head = NULL;pq->tail = NULL;}//入队列
void QueuePush(Queue* pq, QUDataType x)
{assert(pq);if (pq->head == NULL && pq->tail == NULL){QueueNode* newnode = (QueueNode*)malloc(sizeof(QueueNode));newnode->x = x;newnode->next = NULL;pq->head=newnode;pq->tail=newnode;}else{QueueNode* newnode = (QueueNode*)malloc(sizeof(QueueNode));newnode->x = x;newnode->next = NULL;QueueNode* tail1 = NULL;tail1 = pq->tail;tail1->next = newnode;pq->tail = newnode;}
}//出队列
void QueuePop(Queue* pq)
{assert(pq);if (pq->head ==NULL){exit(-1);}QueueNode* head1 = pq->head->next;free(pq->head);pq->head = head1;if (pq->head == NULL){pq->head = pq->tail = NULL;}
}//取头数据
QUDataType QueueFront(Queue* pq)
{assert(pq);assert(pq->head);return pq->head->x;
}//取尾数据
QUDataType QueueBack(Queue* pq)
{assert(pq);assert(pq->head);return pq->tail->x;
}//有几个数据int QueueSize(Queue* pq)
{assert(pq);int count = 0;QueueNode*pos = pq->head;while (pos != NULL){count += 1;pos = pos->next;}return count;
}//是否为空
bool QueueEmpty(Queue* pq)
{assert(pq);if (pq->head){return false;}return true;
}//打印
void Print(Queue* pq)
{assert(pq);assert(pq->head);QueueNode* pos = pq->head;while (pos != NULL){printf("%d ", pos->x);pos = pos->next;}printf("\n");
}                                        typedef struct {Queue* q1;Queue* q2;
} MyStack;MyStack* myStackCreate() {MyStack* st = (MyStack*)malloc(sizeof(MyStack));st->q1 = (QUEUE*)malloc(sizeof(QUEUE));st->q2 = (QUEUE*)malloc(sizeof(QUEUE));return st;
}void myStackPush(MyStack* obj, int x) {if (!QueueEmpty(obj->q1)){QueuePush(obj->q1, x);}else{QueuePush(obj->q2, x);}
}int myStackPop(MyStack* obj) {Queue* empty = obj->q1;Queue* noempty = obj->q2;if (!QueueEmpty(obj->q1)){empty = obj->q2;noempty = obj->q1;}int top = QueueBack(noempty);while (QueueSize(noempty) > 0){QueuePush(empty, QueueFront(noempty));QueuePop(noempty);}return top;}int myStackTop(MyStack* obj) {if (!QueueEmpty(obj->q1)){return QueueBack(obj->q1);}return QueueBack(obj->q2);
}bool myStackEmpty(MyStack* obj) {if (QueueEmpty(obj->q1) || QueueEmpty(obj->q2)){return false;}return true;}void myStackFree(MyStack* obj) {free(obj->q1);free(obj->q2);free(obj);
}


相关文章:

我的数据结构c(给自己用的)

目录 顺序表&#xff1a; 链表&#xff1a; 栈&#xff1a; 队列&#xff1a; 我想在之后的大学数据结构课上需要自己写来做题&#xff0c;但每次都自己写&#xff0c;那太麻烦了&#xff0c;所以我就将这个博客来把所有的C语言的数据结构弄上去&#xff0c; 问我为什么不…...

使用Arcgis对欧洲雷达高分辨率降水数据重投影

当前需要使用欧洲高分辨雷达降水数据&#xff0c;但是这个数据的投影问题非常头疼。实际的投影应该长这样&#xff08;https://gist.github.com/kmuehlbauer/645e42a53b30752230c08c20a9c964f9?permalink_comment_id2954366https://gist.github.com/kmuehlbauer/645e42a53b307…...

[Python] scikit-learn中数据集模块介绍和使用案例

sklearn.datasets模块介绍 在scikit-learn中&#xff0c;可以使用sklearn.datasets模块中的函数来构建数据集。这个模块提供了用于加载和生成数据集的函数。 API Reference — scikit-learn 1.4.0 documentation 以下是一些常用的sklearn.datasets模块中的函数 load_iris() …...

Qt-互斥量-临界区-QMutex-QMutexLocker-QReadWriteLock

文章目录 1.QMutex2.QMutexLocker3.QReadWriteLock 在Qt中&#xff0c;互斥量&#xff08;Mutex&#xff09;是用于同步多线程访问共享资源的一种机制。临界区&#xff08;Critical Section&#xff09;是指一段必须由单个线程执行的代码区域&#xff0c;防止多个线程同时执行这…...

《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述(6)

接前一篇文章&#xff1a;《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述&#xff08;5&#xff09; 4.1 PCIe总线的基础知识 与PCI总线不同&#xff0c;PCIe总线使用端到端的连接方式&#xff0c;在一条PCIe链路的两端只能各连接一个设备&#xff0c;这两个…...

uniapp 高德地图显示

1. uniapp 高德地图显示 使用前需到**高德开放平台&#xff08;https://lbs.amap.com/&#xff09;**创建应用并申请Key   登录 高德开放平台&#xff0c;进入“控制台”&#xff0c;如果没有注册账号请先根据页面提示注册账号   打开 “应用管理” -> “我的应用”页面…...

2024年最新幻兽帕鲁服务器搭建教程

玩转幻兽帕鲁服务器&#xff0c;阿里云推出新手0基础一键部署幻兽帕鲁服务器教程&#xff0c;傻瓜式一键部署&#xff0c;3分钟即可成功创建一台Palworld专属服务器&#xff0c;成本仅需26元&#xff0c;阿里云服务器网aliyunfuwuqi.com分享2024年新版基于阿里云搭建幻兽帕鲁服…...

重新配置vue项目时出现的:连接已断开问题

在新机器上配置完node.js、vue-cli&#xff0c;配置了node_modules后&#xff0c;命令行运行vue ui后&#xff0c;出现了如下报错&#xff1a; C:\Users\LEN>vue ui &#x1f680; Starting GUI... &#x1f320; Ready on http://localhost:8000 node:events:496throw e…...

四、Redis之配置文件

redis配置文件的名称 redis.conf 通过命令 find / -name redis.confvim redis.conf通过 : set nu 设置行号: set nonu 取消行号/关键字 搜索关键字: set noh 取消高亮选择4.1 Units 配置大小单位&#xff0c;开头定义了一些基本的度量单位&#xff0c;只支持 bytes&#…...

libevent源码解析--event,event_callback,event_base

1.概述 实现一个基础tcp网络库&#xff0c;以基于tcp网络库构建服务端应用&#xff0c;客户端应用为起点&#xff0c;我们的核心诉求有&#xff1a; a. tcp网络库管理工作线程。 b. tcp网络库产生服务端对象&#xff0c;通过启动接口&#xff0c;开启服务端监听。进一步&…...

C语言进阶之文件操作

一、什么是文件 磁盘上的文件是文件。 但是在程序设计中&#xff0c;我们一般谈的文件有两种&#xff1a;程序文件、数据文件&#xff08;从文件功能的角度来分类的&#xff09;。 1&#xff09;程序文件 包括源程序文件&#xff08;后缀为.c&#xff09;,目标文件&#xff…...

互联网摸鱼日报(2024-02-02)

互联网摸鱼日报(2024-02-02) 博客园新闻 马斯克&#xff1a;Neuralink已探测到神经信号 Linus新年首骂&#xff1a;和谷歌大佬大吵4天&#xff0c;“你的代码就是垃圾” 从零手搓MoE大模型&#xff0c;大神级教程来了 无人出租车深圳中心区收费载客&#xff0c;硅谷同款&am…...

2024美赛C题:网球中的动量

解析&#xff1a;https://mp.weixin.qq.com/s/TOPvJ-5pjgsvjvYXt6E9Fg 2023年温网男篮决赛&#xff0c;20岁的西班牙新星卡洛斯阿尔卡拉斯 击败了36岁的诺瓦克德约科维奇。这场失利是德约科维奇自2013年以来首次在温布尔登输球 并结束了大满贯历史上最伟大的球员之一的非凡表现…...

20.HarmonyOS App(JAVA)表格布局Layout使用方法

ability_main.xml&#xff0c;实现计算器键盘按钮 <?xml version"1.0" encoding"utf-8"?> <TableLayoutxmlns:ohos"http://schemas.huawei.com/res/ohos"ohos:height"match_parent"ohos:width"match_parent"oho…...

Android使用ScrollView导致鼠标点击事件无效

平台 测试平台: RK3288 Android8.1RK3588 Android 12 问题 首先, 这个问题的前提是, 使用的输入设备是**鼠标**, 普通的触摸屏并不会出现这个问题. 大致的流程是APP的UI布局中采用ScrollView作为根容器, 之后添加各类子控件, 在一起准备就绪后, 使用鼠标进行功能测试, 出现…...

【开源】SpringBoot框架开发大学计算机课程管理平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 实验课程档案模块2.2 实验资源模块2.3 学生实验模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 实验课程档案表3.2.2 实验资源表3.2.3 学生实验表 四、系统展示五、核心代码5.1 一键生成实验5.2 提交实验5.3 批阅实…...

Mac Shift切换输入法 - shift切换中英文 - Karabiner-Elements

转载自 https://www.jianshu.com/p/677ae7d9beda...

智慧港口:山海鲸可视化引领未来

随着疫情的结束&#xff0c;全球贸易迎来新的春天&#xff0c;港口作为物流枢纽的地位日益凸显。然而&#xff0c;传统港口的运营和管理方式已无法满足现代物流的需求。为了提高港口运营效率&#xff0c;降低成本&#xff0c;智慧港口的概念应运而生。作为山海鲸可视化的开发者…...

Linux 网络编程 + 笔记

协议&#xff1a;一组规则 分层模型结构&#xff1a; OSI七层模型&#xff1a;物理层、数据链路层、网络层、传输层、会话层、表示层、应用层TCP/IP 4层模型&#xff1a;链路层/网络接口层、网络层、传输层、应用层 应用层&#xff1a;http、ftp、nfs、ssh、telnet、传输层&am…...

顺序表应用3:元素位置互换之移位算法

顺序表应用3&#xff1a;元素位置互换之移位算法 Description 一个长度为len(1<len<1000000)的顺序表&#xff0c;数据元素的类型为整型&#xff0c;将该表分成两半&#xff0c;前一半有m个元素&#xff0c;后一半有len-m个元素&#xff08;1<m<len)&#xff0c;借…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...