顺序表-数据结构
一、结构定义
顺序表是通常是数组,要求数据连续存储。顺序表又分为定长顺序表和变长顺序表,本文实现后者。
1、头文件
#include <stdio.h>
#include <stdlib.h>
2、定长顺序表
#define MAX 100
定长顺序表结构
typedef struct SqList {int arr[MAX];int size;
}Sq;
3、变长顺序表
//变长顺序表
typedef struct SqList {int* arr;int size;int capacity;
}Sq;
二、功能实现
1、初始化
//初始化
bool Sq_init(SqList* S) {//检查空指针if (S == NULL){printf("init false");exit(-1);}S->arr = (int*)malloc(sizeof(int) * 30);//检查malloc是否成功if (S->arr == NULL) {printf("malloc false");return false;}S->capacity = 30;S->size = 0;return true;
}
2、扩容
//检查数组、满则扩容
bool Sq_Check(SqList* S)
{if (S->size == S->capacity){int newcapacity = S->capacity + 30;int* arr_tmp = (int*)realloc(S->arr, newcapacity * sizeof(int));if (arr_tmp == NULL) {printf("realloc false");exit(-1);}S->arr = arr_tmp;S->capacity = newcapacity;}
}
3、插入
//头插
bool Sq_PushFront(SqList* S,int value)
{if (S == NULL)exit(-1);Sq_Check(S);for (int i = S->size; i > 0; i--){S->arr[i] = S->arr[i - 1];}S->arr[0] = value;S->size++;return true;
}
//尾插
bool Sq_PushBack(SqList* S, int value)
{if (S == NULL)exit(-1);Sq_Check(S);S->arr[S->size] = value;S->size++;return true;
}
4、删除
//头删
int Sq_PopFront(SqList* S)
{//头删就是把序号为0的元素删除//若需要删除序号为x的元素//只需要更改i的初始值和循环次数即可if (S == NULL)exit(-1);//让后一项覆盖前一项,重复size-1次int ret = S->arr[0];for (int i = 0; i < S->size - 1; i++){S->arr[i] = S->arr[i + 1];}S->size--;return ret;
}
//尾删
int Sq_PopBack(SqList* S)
{if (S == NULL)exit(-1);int ret = S->arr[S->size - 1];S->size--;return ret;
}
5、查询
//查
int Sq_Select(SqList* S, int x)
{if (S == NULL)exit(-1);if (x >= S->size)exit(-1);return S->arr[x];
}
6、主函数及打印
void Sq_Print(SqList* S)
{for (int i = 0; i < S->size; i++){printf("%d ", S->arr[i]);}printf("\n");
}
int main(){SqList* S = (SqList*)malloc(sizeof(SqList));Sq_init(S);Sq_PushBack(S, 1);Sq_PushBack(S, 2);Sq_PushBack(S, 3);Sq_PushFront(S, 4);Sq_Print(S);Sq_PopBack(S);Sq_PopFront(S);Sq_Print(S);printf("%d",Sq_Select(S, 1));return 0;
}
三、效果图

相关文章:
顺序表-数据结构
一、结构定义 顺序表是通常是数组,要求数据连续存储。顺序表又分为定长顺序表和变长顺序表,本文实现后者。 1、头文件 #include <stdio.h> #include <stdlib.h> 2、定长顺序表 #define MAX 100 定长顺序表结构 typedef struct SqList {…...
如何写出更优雅的并行程序?
如何写出更优雅的并行程序? 并行编程关于并行编程的一些理解 并行编程 并行编程是一种利用多个处理器或计算资源同时执行多个任务的编程方式,以提高计算效率和性能。允许程序员编写可以在多核处理器或多个计算机节点上同时执行的程序,以充分…...
C#中的Hangfire和Quartz.NET 任务调度的区别
Hangfire 和 Quartz.NET 是两种常见的 C# 任务调度库,它们有不同的特点和使用场景。以下是这两个库的详细对比,包括它们的主要功能、适用场景以及关键区别。 目录 Hangfire 主要功能 适用场景 示例代码 Quartz.NET 主要功能 适用场景 示例代码 …...
银行卡二三四要素验证-银行卡二三四要素验证接口-银行卡二三四要素
接口简介:全面覆盖,支持所有带银联标识的银行卡; 高准确性-验证结果实时返回,准确率达99%; 高稳定性-双通道自动切换,保证业务不间断; 专业服务-7*24小时服务,极速响应,为用户保驾护航; 接口地址࿱…...
C# 设计模式之命令模式
总目录 前言 命令模式在日常中,也是比较常见的,就比如:妈妈和爸爸说,你去让孩子把地扫一下;这就是是一个命令,命令中的 下达命令的是妈妈,传达命令的是爸爸,接受命令做事的是孩子&a…...
pod详解 list-watch机制 预选优选策略 如何指定节点调度pod
K8S是通过 list-watch 机制实现每个组件的协同工作 controller-manager、scheduler、kubelet 通过 list-watch 机制监听 apiserver 发出的事件,apiserver 也会监听 etcd 发出的事件 scheduler的调度策略: 预选策略(Predicates)…...
深入探索:【人工智能】、【机器学习】与【深度学习】的全景视觉之旅
目录 第一部分:人工智能、机器学习与深度学习概述 1.1 人工智能的概念与发展 代码示例:简单的AI决策系统 1.2 机器学习的定义与分类 代码示例:简单的线性回归模型 1.3 深度学习的基础与应用 代码示例:构建简单的神经网络 …...
使用js和css 实现div旋转围绕圆分布排列
记录,以防忘记 围绕圆 import React, { useEffect } from react; import ./index.scoped.scss;const Test () > {const arr Array.from({ length: 28 }, (_, index) > index 1);useEffect(() > {const dayTotal arr.length;// 动态设置每个点的旋转角…...
SQL Server中CPU使用率过高的排查
CPU使用率过高有许多可能原因,但以下原因最为常见: 1.由于以下情况,表或索引扫描导致的高逻辑读取: 过期统计信息 缺少索引 参数敏感计划 (PSP) 问题 设计不佳的查询 2.工作负荷增加 对于安装了sqlserver的服务器,可…...
AUTOSAR AP常用文档前缀
AUTOSAR AP常用文档前缀总结如下表: 缩写全称含义EXPExplanation文档类别,跟踪类别 讨论其他文件中已经显示的内容的说明材料MODModel文档类别,跟踪类别 元级别1(模型)上的建模内容(模型或从模型生成的内容)RSRequirement Specification文档…...
服务器迁移基于Tomcat部署的java应用,没有源码怎么办?
文章目录 反编译创建java工程编译新的数据库配置类DbUtilclass文件替换到Tomcat配置的应用路径 docBase背景:非国产化项目服务器审计不通过,需要迁移到外部公司。由于项目是第三方公司开发,丢失java项目源码。 部署环境:Tomcat7,JDK1.8 涉及JAVA项目的有两个服务,一个电台…...
kafka-go使用:以及kafka一些基本概念说明
关于kafka 作为开发人员kafka中最常关注的几个概念,是topic,partition和group这几个概念。topic是主题的意思,简单的说topic是数据主题,这样解释好像显得很苍白,只是做了个翻译。一图胜前言,我们还是通过图解来说明。…...
景联文科技:破解数据标注行业痛点,引领高质量AI数据服务
数据标注行业是人工智能和机器学习领域中一个非常重要的组成部分。随着AI技术的发展,对高质量标注数据的需求也在不断增长。 数据标注市场的痛点 1. 团队管理 在众包和转包模式下,管理大量的标注人员是一项挑战。 需要确保标注人员的专业性、稳定性和…...
C#获取Network的相关信息
1,获取网络的通断。 //方法1:无效果,并不能反映当前网络通断 bool availableSystem.Windows.Forms.SystemInformation.Network//方法2:通过VB获取网络状态,可反映当前网络通断 Microsoft.VisualBasic.Devices.Network…...
Jenkins 部署Vue项目指引: Vue项目本地跨域代理 、解决ERR_UNSAFE_PORT
文章目录 引言I Jenkins 部署Vue项目配置插件安装系统配置NodeJS安装目录和别名设置新建任务(通用类型)构建环境Build Steps(构建步骤)II nginx部署站点(端口和站点目录的映射)查找Nginx配置文件端口和站点目录的映射III Vue项目本地跨域代理,屏蔽掉后端服务API的网关IP…...
C语言电子画板
目录 开头程序程序的流程图程序的效果结尾 开头 大家好,我叫这是我58。今天,我们来看一下我用C语言编译的电子画板和与之相关的一些东西。 程序 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <Windows.h> int main() …...
Android Gradle开发与应用技术原理
Android Gradle开发与应用技术原理 Android Gradle开发与应用技术原理一、概述二、Gradle构建原理1. Gradle架构2. Gradle构建过程3. 构建脚本 三、Gradle插件机制四、在Android应用中实现Text-to-Speech(TTS)功能1. 配置Gradle依赖2. 实现TTS功能示例代…...
Midjourney入门-提示词基础撰写与公式
前言 在前几篇教程里我们已经可以初步使用Midjourney进行出图了。 包括也了解了Midjourney的指令与参数。 但如果你想用Midjourney去生成各种各样高质量的图片, 并且生成的图片是你想要的画面内容,也就是更好控制生成图片的画面内容与风格…...
Apache Tomcat服务器版本号隐藏
渗透测试时发现有一台服务器的404报错页面中,有Apache Tomcat的版本号信息显示,发生了信息泄露,可能导致服务器被攻击。如下所示: 解决步骤如下: 1. 隐藏HTTP响应头中的Server信息 Tomcat默认会在HTTP响应头中包含S…...
【Qt】Qt编程注意事项
目录 Qr中的命名规范 Qt Creator中的快捷键 查询文档的方式 Qt窗口坐标体系 Qr中的命名规范 在学习编程语言阶段,给变量、函数、文件、类命名是非常有讲究的。 命名要有描述性,不要使用abc,xyz这种比较无规律的名字类描述。如果名字比较…...
MegSpot专业视觉分析工具:从基础操作到高级应用全指南
MegSpot专业视觉分析工具:从基础操作到高级应用全指南 【免费下载链接】MegSpot MegSpot是一款高效、专业、跨平台的图片&视频对比应用 项目地址: https://gitcode.com/gh_mirrors/me/MegSpot 在数字媒体创作与分析领域,如何高效对比图片细节…...
用随机森林预测空气质量?先看看这6个特征谁说了算!(Python特征重要性分析与可视化实战)
随机森林特征重要性分析:解码空气质量预测的6大关键因素 当数据科学家们谈论空气质量预测时,常常陷入一个误区——过分关注模型的预测准确率,却忽视了模型背后的故事。想象一下,你花费数周时间调优的随机森林模型预测准确率达到了…...
深度解析DeepMIMO:毫米波大规模MIMO信道建模的5个架构设计决策
深度解析DeepMIMO:毫米波大规模MIMO信道建模的5个架构设计决策 【免费下载链接】DeepMIMO-matlab DeepMIMO dataset and codes for mmWave and massive MIMO applications 项目地址: https://gitcode.com/gh_mirrors/de/DeepMIMO-matlab 在5G/6G通信系统演进…...
智慧树网课助手:3步实现自动化学习,效率提升50%
智慧树网课助手:3步实现自动化学习,效率提升50% 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 在智慧树平台学习网课时,你是否经常…...
终极Google Drive下载解决方案:专业级gdrivedl实战指南
终极Google Drive下载解决方案:专业级gdrivedl实战指南 【免费下载链接】gdrivedl Google Drive Download Python Script 项目地址: https://gitcode.com/gh_mirrors/gd/gdrivedl Google Drive文件下载是许多开发者和技术爱好者面临的常见挑战,特…...
AI写前端也看“审美”?我用GLM4.6、Kimi和Minimax-m2做了个设计实验,结果有点意外
AI写前端也看“审美”?GLM4.6、Kimi与Minimax-m2的设计实验报告 当我们在深夜调试CSS时,是否想过AI模型其实也在"暗中观察"我们的设计品味?这次实验让我发现了一个有趣现象:不同AI生成的前端代码,在视觉呈现…...
千问3.5-2B开源可部署实践:本地GPU环境一键启用,无云服务依赖
千问3.5-2B开源可部署实践:本地GPU环境一键启用,无云服务依赖 1. 模型介绍与核心能力 千问3.5-2B是Qwen系列中的小型视觉语言模型,专为图片理解与文本生成任务设计。这个开源模型最大的特点是能够同时处理视觉和语言信息,实现真…...
告别Edge收藏夹翻页烦恼!用这个免费插件实现多列平铺,效率翻倍
Edge浏览器收藏夹效率革命:多列平铺插件实战指南 每次打开Edge浏览器,面对那串长得仿佛没有尽头的单列收藏夹,你是不是也感到一阵无力?滚动、翻页、再滚动——找个书签比找停车位还费劲。作为一名每天要和上百个书签打交道的效率控…...
intv_ai_mk11企业应用案例:如何将intv_ai_mk11集成进内部知识库与客服预处理流程
intv_ai_mk11企业应用案例:如何将intv_ai_mk11集成进内部知识库与客服预处理流程 1. 企业面临的挑战与AI解决方案 在当今企业运营中,知识管理和客户服务是两大核心痛点。许多企业面临以下问题: 知识库利用率低:员工难以快速找到…...
Pixel Aurora Engine应用场景:独立开发者低成本构建像素IP资产库
Pixel Aurora Engine应用场景:独立开发者低成本构建像素IP资产库 1. 像素艺术创作新纪元 在游戏开发领域,像素艺术始终保持着独特的魅力。从早期的《超级马里奥》到现代的《星露谷物语》,像素风格游戏凭借其怀旧感和艺术表现力,…...
