简单顺序表增删改查实现

利用easyx库简单实现顺序表和单链表增删改查的动画演示 EasyX 是针对 C/C++ 的图形库,可以帮助使用C/C++语言的程序员快速上手图形和游戏编程。 比如,可以用 VC + EasyX 很快的用几何图形画一个房子,或者一辆移动的小车,可以编写俄罗斯方块、贪吃蛇、黑白棋等小游戏,可以练习图形学的各种算法,等等。————百度百科 easyx的文档:https://docs.easyx.cn/en-us/intro 其实原理很简单,就是利用easyx的画圆功能,然后定位输出功能,然后加上清屏和延时函数,建议实现动画效果。 顺序表和单链表的结构体定义我就不赘述了 阅读详情
#include <stdio.h>
#include <stdlib.h>

#define List_Init_size 100 // 初始分配空间
#define Link_Increasment 10 // 增量

typedef struct {
    int* data;
    int length;
    int listsize;
} Sqlist;

void Initlist(Sqlist* L) {
    L->data = (int*)malloc(List_Init_size * sizeof(int));
    if (L->data == NULL) {
        // 分配内存空间失败的处理逻辑
        return;
    }
    L->length = 0;
    L->listsize = List_Init_size;
}

void List_insert(Sqlist* L, int i, int data) {
    if (i < 1 || i > L->length + 1) {
        return;
    }
    if (L->length >= L->listsize) {
        L->data = (int*)realloc(L->data, (L->listsize + Link_Increasment) * sizeof(int));
        if (L->data == NULL) {
            // 分配内存空间失败的处理逻辑
            return;
        }
        L->listsize += Link_Increasment;
    }
    int* p = L->data + i - 1;
    int* base = L->data + L->length - 1;
    while (base >= p) {
        *(p + 1) = *p;
        p--;
    }
    *(L->data + i - 1) = data;
    L->length++;
}

void List_delete(Sqlist* L, int i) {
    if (i < 1 || i > L->length) {
        return;
    }
    int* p;
    p = L->data + i - 1;
    int* base;
    base = L->data + L->length - 1;
    while (p < base) {
        *p = *(p + 1);
        p++;
    }
    L->length--;
}

void List_change(Sqlist* L, int i, int data) {
    if (i < 1 || i > L->length) {
        return;
    }
    int* p;
    p = L->data + i - 1;
    *p = data;
}

void List_search(Sqlist* L, int i) {
    if (i < 1 || i > L->length) {
        return;
    }
    int* p;
    p = L->data + i - 1;
    printf("%d\n", *p);
}

int main() {
    Sqlist sqlist;
    Initlist(&sqlist);
    for (int i = 1; i <= 10; i++) {
        List_insert(&sqlist, i, i);
    }
    for (int i = 1; i <= 10; i++) {
        List_search(&sqlist, i);
    }
    printf("-------------------\n");
    List_delete(&sqlist,5);
    for (int i = 1; i <= 10; i++) {
        List_search(&sqlist, i);
    }
    printf("-------------------\n");
    List_change(&sqlist,1,99);
    for (int i = 1; i <= 10; i++) {
        List_search(&sqlist, i);
    }
    free(sqlist.data);
    return 0;
}

基于YOLO的智能视频监控异常行为检测研究:从算法原理到落地部署的全栈实践 本文深入探讨如何利用 YOLO(You Only Look Once)系列算法构建一套端到端的异常行为检测系统。文章首先回顾 YOLOv8 在时空建模上的局限,然后提出“YOLO-STA(Spatio-Temporal Aggregation)”轻量级改进框架,在公开数据集 UCF-Crime 上将异常行为检测的 mAP@0.5 从 72.4 提升到 80.1;接着给出完整训练、推理、部署的 Python 代码(PyTorch + TensorRT),并介绍如何仅用 4 GB 显存的 Jetson Xavi 阅读详情

相关推荐

使用cubeMX生成USB HID设备

本文主要介绍如何使用stm32开发板和cubeMX生成HID设备,供参考。

专注音频,高效工作,快乐生活! 970

顺序表实现增删改查——史上最简单

史上最简单的增删改查可实现学生成绩管理的操作

全栈猿 206

前导0预测(Leading-Zero Anticipator,LZA)

前导0预测(Leading-Zero Anticipator,LZA) 浮点加法在完成之后会进行尾数规格化移位,而在进行尾数加法时,可以使用前导0预测(Leading-Zero Anticipator,LZA)同时计算移位,前导0预测只发生在一个正数加上一个负数的情况下,电路图如图1所示。 图1 传统LZD算法和LZA算法 1. 基础算法 算法的目标是计算出加法结果序列左边连续0的数量,下文中对...

crw1111111的博客 7379

动态顺序表的实现和简单接口增删改查

本文介绍了动态顺序表的结构体定义及功能实现。结构体包含数组指针、有效数据个数和容量大小,通过typedef实现数据类型通用化。主要功能包括初始化、销毁、容量检查,以及头尾/指定位置的插入删除操作。插入时自动扩容(初始4单位,之后2倍增长),删除时移动数据并调整size。所有操作都包含参数合法性检查,如空指针、越界访问等。还提供了查找和打印功能。关键点在于动态内存管理和数据移动逻辑,确保操作安全高效。

Melsusy的博客 361

【智能车Code review】——小S与中S道路判断

基本思想: 找到中线的左拐点和右拐点,并且计算出两点之间的空间距离。通过限制空间距离,分为中S和小S。 注意这种情况:当20行以下的中线斜率比较陡,此时可以通过人为限制设定,将第0行的中线设置为拐点。 if (flag_centre_right_point == 0 && flag_centre_left_point == 1 && parameterB >= 0.5 && centre_left_point[0] >= 33) { .

hanhan的博客 6104

赛豆科技 AIVA 汽车智能体架构演进面试题与答案

摘要 赛豆科技AIVA汽车智能体架构从座舱AI演进到整车智能体,最终实现自进化的超级智能体。其核心是"先有AI再有车"的理念,将AI作为产品主轴而非附加功能。架构设计采用端-边-云协同,确保低延迟响应;整车智能体通过Planner、Tool Registry等关键组件实现自主决策;自进化机制结合车端个性化学习和云端群体学习,并设置多重安全验证。多域协作采用分层架构,关键安全功能仍由确定性逻辑控制。该架构实现了从被动响应到主动服务的范式转变,使车辆能够持续进化。

AI天才研究院 122

【数据结构】用JAVA实现顺序表的一些简单的增删改查

【代码】【数据结构】用JAVA实现顺序表的一些简单的增删改查。

Superkom666的博客 329

安装Openclaw[本地自动化AI助手]至windows【WSL2模式】系统 Openclaw for Windows

摘要:OpenClaw最佳兼容OpenAI系列模型,推荐使用ChatGPT API(需Auth鉴权),避免K*mi等模型导致的信用卡风险。Windows系统需满足WSL2支持条件(Win11或Win10 1903+版本)。安装需导入自签名根证书或跳过浏览器安全警告,通过离线包部署WSL发行版。使用时通过clawtoken命令获取网关认证令牌,并在浏览器完成设备配对。提供代购ChatGPT Plus账号服务(¥140/月),详细操作指南需加微信群获取文件。(150字)

qq_27246521的博客 456

三分钟学会数据结构顺序表

本篇博客涉及顺序表的定义,顺序表的静态实现和动态实现,还有顺序表增删改查等基本操作的实现,让你三分钟掌握数据结构——顺序表

暴躁小吕的博客 2000

全志 camera: 4路AHD摄像头转MIPI

TP2815 驱动模块主要实现将 4 路的 AHD/TVI/CVBS Camera 的数据转换为 MIPI 数据,从而实现在 T527 端来对数据进行处理和送显。

Linux驱动开发工程师,熟悉Linux/Android底层驱动、TP、显示、IIC、网络等通用外设调试适配,Linux上层应用开发。常用平台瑞芯微、全志、恩智浦等。 9095

python批量调用大模型API:多线程和异步协程

本文介绍了利用多线程技术批量调用大模型API的实现方法。核心是通过并发请求提高处理效率,主要采用线程池管理并发数量、结果聚合等技术。文章提供了一个完整的Python实现示例,包含APIBatchCaller类及其single_api_call和batch_call方法,详细解析了并发控制、错误处理等关键点,并给出了使用注意事项,包括并发数设置、重试策略和超时处理等。该方案特别适合IO密集型任务,能显著提升批量API调用的效率。

Cachel Wood的博客 760

C语言:手撕顺序表及基于顺序表写一个通讯录

在头插前,先判断空间够不够,够的情况下,我们先进行数据挪动,让i=sl->_size,刚开始把倒数第二个数据挪动到sl->_size位置处,不断减减i,最后将下标为0的位置即头部插入数据,并将_size++;头文件SequenceList.h用来定义一个顺序表结构体、声明顺序表的接口,源文件SequenceList.c负责实现顺序表的接口,test.c文件用于测试。传一个数据x过来,如果顺序表有这个数据,那么将它的下标返回,如果循环结束还是没有找到,那么就返回-1。因为不需要修改内容,所以我们传值即可。

枫叶栀子的博客 888

【网络安全】浅谈数据库攻击复现及相关安全优化

4、准备数据库服务器为了安全正式环境应该把数据库单独放一台服务器,只允许让应用服务器 IP 来访问数据库服务器,通过独立两者,就算其中一台发生问题,另一台也是好的,进一步降低了危险性。5、定时备份数据库开发定时备份功能,可以使用 Crontab,或者其他框架,设定周期备份数据,哪怕是数据丢失或被删除也可以快速恢复。

2401_88545587的博客 221

基于顺序表实现简单的通讯录(顺序表基础篇)

本文介绍了使用C语言实现顺序表数据结构并开发通讯录管理系统的完整过程。主要内容包括:1. 顺序表的核心设计与实现,通过typedef实现数据类型可扩展性;2. 动态内存管理机制,包括初始化、销毁、自动扩容等关键操作;3. 顺序表基本操作实现,涵盖头插/尾插、头删/尾删、指定位置操作等;4. 查找功能实现及测试方法;5. 模块化编程方法,将声明、实现和测试分离。文章还展望了后续基于顺序表实现通讯录系统的计划,并提供了数据结构学习的思考方向。该实现体现了C语言在数据结构开发中的核心技术和设计思想。

weixin_73547330的博客 1167

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

顺序表实现简单交互(C语言)

用数据结构中顺序表实现一组数据的存储,并通过简单的交互实现该顺序表的增删改查。 //ADT 线性表(List) 顺序存储结构 #include <stdio.h> #include <stdlib.h> #define MAXSIZE 100 #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 typedef int ElemType; //ElemTYpe类型根据实际情况而定。 typedef int Status

m0_51512094的博客 267

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Java数据结构学习DAY2——顺序表

Java数据结构———顺序表 1. 认识线性表和顺序表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串… 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式储存。 2. Java中的 List 和 ArrayList Collection:元素集合 List: 线性表 ArrayList: 顺序表 // 为了便于理

graceyun的博客 222

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

002_可以自动扩容的顺序表

跟上篇文章的区别 仅仅在于。 上篇文章:001_顺序表的实现 我删除了限制,把增的部分改写成了这样: //增:在末尾添加一个数据 func (list *ArrayList)Append(v interface{})(error){ list.Data = append(list.Data, v) list.TheSize++ return nil } //增:在指定索引位置,插入数据 f...

qq_22056419的博客 388

C语言顺序表

顺序表:简单型:利用数组的方式来达到顺序表的效果int a[10];前六个有效数据 后四个垃圾值问题:如何遍历有效数据?只能遍历所有数据解决:添加一个变量len 用来记录存入数据的个数中等型:结构体:int a[10];//用来存储数据的空间int len;//记录存入数据的个数缺点:数组的长度无法估量 ,而且无法后期修改3>完成型:结构体:int a[10];//用来存储数据的空间 --->适用于在栈空间操作。

dybukeai的博客 119

顺序表的基操(c语言)

对于顺序表时间基本的增删改查功能 printf("############################################\n"); printf("###1: push _back 2: push _front ###\n"); printf("###3: show_list 0: quit_system ###\n"); printf("###4: pop_back 5: pop_front ###\n"); printf(

S5242的博客 217

顺序表结构实现简单通讯录(有增删改查和将数据写入txt文档中的功能)C语言

顺序表结构实现简单通讯录(有增删改查和将数据写入txt文档中的功能)C语言。

qq_36129581的博客 1046

[YM]模板-顺序表

简洁的动态顺序表模板

2302_80481841的博客 600

静态顺序表

最近在学习数据结构的单链表部分,于是写了一个静态单链表做练习。实现了对其初始化、添加、更改、删除等功能的实现。 "Seqlist.h" #pragma once #define __SEQ_LIST__ #ifdef __SEQ_LIST__ #include #include #include #define MAXSIZE 100 typedef int DataType; t

Lolita0917的专栏 508

C语言顺序表代码实现

顺序表: 顺序表的创建: 定义结构体:结构体成员包含整形数组和一个记录最后一个数据下标的整形变量: #define DATASIZE 5 typedef struct { int data[DATASIZE]; int last; }sqlist_t; 编写创建顺序表的函数:返回创建顺序表的首地址 sqlist_t *sqlist_create(void) { sqlist_t *list = NULL; list = malloc(sizeof(sqlist_t)); if(list == N

weixin_56565733的博客 1637

手动实现顺序表+Java中自带的ArrayList常用方法的使用

首先我们先了解顺序表是n个具有相同特性的数据元素的有限序列;而顺序表是线性表的一种,它是用一片连续的存储空间去存储的一种数据结构,可以理解成是我们自己组织起来的一种新的数据类型,包含一些我们需要的方法,它的物理结构和逻辑结构都是连续的;一般情况下,顺序表是用来操作数组的,顺序表的实现本质也就是增删查改;

2203_75920270的博客 574

C语言下的静态顺序表

静态顺序表的实现 seqlist.h #define _CRT_SECURE_NO_WARNINGS 1 #pragma once #include #include #include #include typedef int DataType; #define MAX 100 typedef struct Seqlist //定义顺序表结构 { DataType

ZoctopusD的博客 350

顺序表--动态创建方式

/********************************************************** 对于线性表中动态创建数组的方式的练习 Description: 主要要求有: (1)建立一个顺序表,含有n个数据元素。 (2)输出顺序表。 (3)在顺序表中删除值为x的结点或者删除给定位置i的结点。 (4)实现把该表中所有奇数排在偶数之前,即表的前面为奇数,后面为偶数。 (5)输...

weixin_41361535的博客 1214
上一篇: jsp简单表单控件
下一篇: 简单链表的增删改查
format_push
博客等级 码龄4年 104粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值