c语言顺序表的简单介绍

顺序表的分类:

静态顺序表物理结构上呈线性存储,而动态在逻辑结构上呈线性存储(何为线性存储?数据按照线性顺序(也称为顺序存储)排列在连续的存储单元中。)动态顺序表当空间不够时可以自行增容,而静态顺序表不能。

如实现何构造一个动态顺序表实现一些简单操作?

1.进行顺序表的命名,可以通过typedef对名称进行简写

2.顺序表的初始化:

将数组arr、size及capacity初始化为0(ps址传递)

3.尾插功能的实现:

1.首先进行assert判断,防止传空指针让程序崩坏

2.检查现存数据和现有空间是否充足

若不充足,判断空间是否为0,为0,赋予其4字节大小,否则给予其原储存量的2倍,用新的变量存储新的空间。

利用realloc进行扩容,扩容是有可能失败的,故可创建一个临时指针数组变量进行存储

扩容成功后,直接将x值赋给arr[size]并将size自增1.

4.尾删操作的实现:

确保传入的指针ps 以及现存数据size 不为空(否则无意义),让后直接删改操作

5.头删操作的实现:

第一个元素删除:将arr[0] = arr[1];

所有元素向前移动一位(首元素不动)实现对首元素的覆盖。并将size-1;

6.指定位置之前插入数据:

将pos之后的数据全部往后移动一位,将pos的位置给x

7.删除指定位置数据:

将pos之后的数据往前移动一位,实现对pos的覆盖,size-1;

打印:

这就是今天要分享的内容,感谢大家的观看!!喜欢的留个赞再走吧

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

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

相关文章

三.音视频编辑-音频混合-概述

引言 当我们在前两篇博客中成功地构建了一个媒体组合,并且略过了音频部分时,我们意识到了我们需要对这个项目进行更详细的探讨。在本篇博客中,我们将会展示如何创建一个包含视频轨道、配音音频轨道以及背景音频轨道的完整媒体组合。更进一步…

Python setuptools简介

distutils(包分发的始祖) 简介 distutils 是 Python 的一个标准库,从命名上很容易看出它是一个分发(distribute)工具(utlis),它是 Python 官方开发的一个分发打包工具,所有后续的打包工具&…

Android IPC机制

在Android系统中,IPC(Inter-Process Communication,进程间通讯)是指在不同进程之间传送数据和通讯的机制。Android中的应用通常运行在独立的沙箱环境中的进程里,由于安全限制,这些进程无法直接访问彼此的内…

【vue】v-bind动态属性绑定

v-bind 简写:value <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><styl…

【深度学习实战(6)】搭建通用的语义分割推理流程

一、代码 #---------------------------------------------------# # 检测图片 #---------------------------------------------------# def detect_image(self, image, countFalse, name_classesNone):#---------------------------------------------------------## 在…

IDEA 找不到或无法加载主类

IDEA 中&#xff0c;有时候会遇到明明存在这个类&#xff0c;import 也没有报错&#xff0c;但编译时会报找不到或无法加载主类。 解决方法&#xff1a; 图像化操作 右侧 Maven > 根项目 > Lifecycle > clean > install 命令操作 mvn clean install

如何更好地理解 Vue 3 watch 侦听器的用法

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Vue error:can not find module ‘@/views/××ב

如果你线上环境遇到这个问题的话&#xff0c;请不要着急 因为我已经踩过坑了&#xff0c;下边咱们说一下这个原因以及解决错失。 从字面上来看是相应路由找不到模块&#xff0c;本地没有问题&#xff0c;线上有问题&#xff0c;就像是本机说话计算机能够理解&#xff0c;而线上…

M系Mac关闭SIP

文章目录 M系Mac关闭SIP一&#xff1a;查看SIP状态二&#xff1a;关闭SIP步骤 M系Mac关闭SIP 一&#xff1a;查看SIP状态 1、使用终端 打开终端 输入csrutil status&#xff0c;回车 你会看到以下信息中的一个&#xff0c;指示SIP状态 已打开 System Integrity Protection s…

康耐视visionpro-CogDistancePointLineTool操作工具详细说明

◆CogDistancePointLineTool:功能说明&#xff1a; 测量点到线的距离 备注&#xff1a;在“Geometry-Measurement”选项中的所有工具都是测量尺寸或角度工具&#xff0c;包括测量线与线的角度、点与线的距离、圆与圆的距离等测量工具&#xff0c;工具使用的方法相似。 ①.打开…

【LeetCode: 3117. 划分数组得到最小的值之和 + 动态规划】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

蓝桥杯 — —灵能传输

灵能传输 友情链接&#xff1a;灵能传输 题目&#xff1a; 输入样例&#xff1a; 3 3 5 -2 3 4 0 0 0 0 3 1 2 3输出样例&#xff1a; 3 0 3思路&#xff1a; 题目大意&#xff1a;给出一个数组&#xff0c;每次选择数组中的一个数&#xff08;要求不能是第一个数与最后一个…

分享一个 git stash 的实际使用场景。

当我将新的变更记录提交为 git commit --amend 后&#xff0c;发现这需要修改云端上的提交记录&#xff0c;也就是 vscode 中会出现这张图 于是&#xff0c;我通过 git reset head^ 撤销掉刚刚的提交。 reset 前&#xff1a; reset 后&#xff1a; 但在撤销的同时&#xf…

设计模式之观察者模式(上)

观察者模式 1&#xff09;概述 1.定义 定义对象之间的一种一对多依赖关系&#xff0c;使得每当一个对象状态发生改变时&#xff0c;其相关依赖对象皆得到通知并被自动更新。 观察者模式的别名包括发布-订阅&#xff08;Publish/Subscribe&#xff09;模式、模型-视图&#…

纯css实现switch开关

代码比较简单&#xff0c;有需要直接在下边粘贴使用吧~ html: <div class"switch-box"><input id"switch" type"checkbox"><label></label></div> css&#xff1a; .switch-box {position: relative;height: 25px…

C++ 封装

1.封装 cpp认为万事万物都可以封装 封装将属性和行为作为一个整体&#xff0c;表现生活中的事物。 将属性和行为加以权限控制。 语法&#xff1a; class 类名{ 访问权限: 属性或者行为 } //学生类 class Student { public:void setName(string name) {m_name name;}vo…

已经下载了pytorch,但在正确使用一段时间后出现No module named torch的错误

问题描述 使用的是叫做m2release的虚拟环境&#xff0c;在此环境下使用conda list可以发现是存在pytorch的&#xff0c;但是运行代码时却报No module named torch的错误。 解决方案 想尝试卸掉这个pytorch重新装一次&#xff0c;但是想卸载会提示找不到&#xff0c;想重新…

经典问题解答(顺序表)

问题一&#xff1a;移除元素 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不…

【SQL】DISTINCT GROUP BY

找到所有办公室里的所有角色&#xff08;包含没有雇员的&#xff09;,并做唯一输出(DISTINCT) 用DISTINCT : SELECT DISTINCT B.Building_name,E.Role FROM Buildings B LEFT JOIN Employees EON B.Building_name E.Building需要找到的结果&#xff1a;所有办公室名字&#…

计算机网络(三)数据链路层

数据链路层 基本概念 数据链路层功能&#xff1a; 在物理层提供服务的基础上向网络层提供服务&#xff0c;主要作用是加强物理层传输原始比特流的功能&#xff0c;将物理层提供的可能出错的物理连接改在为逻辑上无差错的数据链路&#xff0c;使之对网络层表现为一条无差错的…