数据结构(一)顺序表(学习ing)

重生之我 学习【数据结构之顺序表(SeqList)】 全新的开始,为大家带来数据结构的内容(C语言实现)将以顺序表、链表、栈区、队列、二叉树、常见排序算法为主要内容展开学习 阅读详情
  • 定义结构
  • 创建顺序表
  • 初始化顺序表
  • 插入元素
  • 删除元素
  • 销毁顺序表

定义结构

//定义结构
typedef int SeqType;//存储单元类型
typedef struct
{
    SeqType *elem;//存储空间基地址(类似数组首地址)
    int length;//当前长度
    int listsize;//当前分配的存储容量
}SqList;

typedef 用法:定义一种类型的别名,而不是简单的宏的替换,可以用作同时声明指针型的多个对象。

                       用typedef定义与平台无关的类型。

                       为复杂的声明定义一个新的简单的别名。(详细可参考http://blog.youkuaiyun.com/superhoy/article/details/53504472)


 

定义操作

创建顺序表

/*
*创建顺序表
*/
SqList(creatList_sq)()
{
    SqList *List = (SqList *)malloc(sizeof(SqList));
    return *List;
}

初始化顺序表

/*
*初始化顺序表
*返回1,表示初始化成功
*返回0,表示初始化失败
*/
int initList_sq(SqList &L)
{
    L.elem = (SeqType *)malloc(sizeof(SeqType)*LIST_INIT_SIZE);
    if(!L.elem)
        return 0;//内存分配失败,储存空间不够
    L.length = 0;//表示顺序表为空
    L.listsize = LIST_INIT_SIZE;//表示顺序表里,最大存储单元个数
    return 1;
}

插入元素

/*
*插入顺序表
*下标是负数就插入到结尾
*/
int insert_sq(SqList &L,inr index,SeqType val)
{
    if(index>L.length)
    {
        //存储的下表超出顺序表的实际长度
        printf("存储的下表超出顺序表的实际长度");
        return 0;
    }
    if(index<0)//下标是负数,插入到结尾
    {
        index=L.length;
    }
    if(L.length==L.listsize)
    {
        //顺序表的存储单元已经存满,将继续分配新的存储单元
        SeqType* newBase = (SeqType *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(SeqType));//继续分配存储单元
        if(!newBase){
            //分配内存单元失败
            return 0;
        }
        L.elem=newBase;
        L.listsize +=LISTINCREMENT;
    }
    //寻找合适的插入位置,index后面的元素向后移动
    for(int i=L.length;i>index;i--){
        L.elem[i]=L.elem[i-1];//向后移动
    }
    L.elem[index]=val;//插入元素
    L.length++;
    return 1;
}
//realloc(void *__ptr, size_t __size):更改已经配置的内存空间,即更改由malloc()函数分配的内存空间的大小。

参考博客:https://blog.youkuaiyun.com/flueky/article/details/52711668

数据结构之顺序表:顺序表的结构及基本操作 目录一、数据结构1.1 算法与数据结构的区别二、顺序表2.1 顺序表的基本形式【重点】2.2 顺序表的两种基本实现方式【重点】1、一体式结构:2、分离式结构:2.3 元素存储区替换与扩充1. 元素存储区的替换2. 元素存储区的扩充2.4 顺序表的操作1. 增加元素2. 删除元素2.5 Python中的顺序表 一、数据结构 数据结构指数据对象中数据元素之间的关系。 计算机只有三种数据类型:int、float、char。存储在内存中,1个int占4个字节。 1.1 算法与数据结构的区别 程序 = 数据结构 阅读详情

相关推荐

数据结构顺序表+单链表+二叉树+图等等各实验总汇.rar

因为实在有用所以分数较高,只是用于计算机专业

数据结构之顺序表

顺序表 一、创建表 个人理解,即先建个壳子,表明这是个顺序表,里面存的变量是什么类型。 代码如下 #include<stdio.h> #define MAXSIZE 100 typedef struct { int *elem; int length; }List; 二、初始化 将前面定义的变量定义为数组且分配空间大小。 代码如下 /***顺序表初始化***/ void InitList(List &L){ L.elem=new int[MAXSIZE]; L.leng

xiaoyungou的博客 384

kali虚拟机-----破解wifi密码(WiFi渗透)

文章目录一、将无线网卡挂载到 虚拟机上二、查看是否挂载成功三、查看网卡是否支持监听模式四、检查文件监听影响并杀死影响五、开启无线监听模式六、开始监听七、开始抓包(新建一个命令窗口)八、对已连接的终端进行攻击,使它掉线重连,以此来获取数据包。(新建一个命令窗口)九、开始解密 一、将无线网卡挂载到 虚拟机上 可能出现的问题:在可移动设备处无法连接无线网卡; 解决:在虚拟机设置中将usb控制器设置成如图所示。 注意要先关闭虚拟机在设置。 二、查看是否挂载成功 使用ifconfig命令查看 三、查看网卡是

weixin_46471800的博客 1万+

数据结构 第3讲 顺序表

数据结构 第3讲 顺序表 顺序表是最简单的一种线性结构,逻辑上相邻的数据在计算机内的存储位置也是相邻的,可以快速定位第几个元素,中间不允许有空,所以插入、删除时需要移动大量元素。 顺序表可以分配一段连续的存储空间Maxsize,用elem记录基地址,用length记录实际的元素个数,即顺序表的长度, 结构体的定义: 结构体定义后,如果要定义个顺序表L,就可以写: SqLis

rainchxy的博客 4459

Unity嵌套ScrollView滑动冲突解决方案:ExecuteEvents.Execute事件透传

在Unity UGUI中,竖向与横向ScrollView嵌套时出现滑动失效,本质是EventSystem事件分发机制的拦截限制。其原理在于PointerDown被外层捕获后,后续PointerMove默认不向下透传;ExecuteEvents.Execute提供了一条绕过常规冒泡流程的官方事件旁路,支持低延迟、方向自适应的精准透传。该技术具备高兼容性与零侵入特性,广泛应用于电商商品页、内容流卡片组、多级导航等需‘列表中嵌套轮播/标签’的真实场景,是解决UGUI嵌套滚动问题的核心工程实践方案。

weixin_33164198的博客 632

手把手教你用C#实现TwinCAT 3 ADS通讯(附完整代码示例)

本文详细解析了如何使用C#实现TwinCAT 3 ADS通讯,包括协议核心价值、开发环境配置、变量通信实践及高级应用场景。通过完整代码示例和性能优化技巧,帮助开发者高效实现工业自动化系统中的实时数据交换,特别适合倍福(Beckhoff)平台用户。

weixin_29230901的博客 117

线性表——顺序表 知识总结

顺序表的常用操作有建表、插入、删除、查找、打印等等。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <iostream> using namespace std; typedef int ElementType; const int MAXSIZE = 50; //最多存放5个元素 struct sqList { ElementType data...

qq_18841761的博客 1033

HFSS仿真PCB射频通路间的隔离度

本文介绍HFSS方式仿真带有器件的射频通路间的隔离度,可视为CST方式的补充,二者的结果相互参照。在前期靠仿真确认风险点时,可以作为一种较为直观和可信的手段。

sinat_15150363的博客 1524

数据结构【顺序表】

我们需要创建一个seqlist.h头文件,seqlist.c文件存放函数,还有一个.c的测试文件。

qq_67578580的博客 2514

【Unity】【WebRTC】如何用Unity而不是浏览器接收远程画面

之前几篇我们讨论了如何设置信令服务器,如何发送画面给远端以及如何用浏览器查看同步画面,今天来讨论如何实现Unity内部接收画面。看本篇之前请先看过之前将web服务器设置和基本远程画面功能的几篇博文。在Unity编辑器中打开一个示例项目,点击BroadCast按钮。4. 再点击Receiver按钮,Start。Build一个示例项目,并运行这个项目。启动Web.app。

每日出拳老爷子的博客 1721

含分布式光伏的IEEE 33节点配电网电压越限仿真分析

摘要 本文针对分布式光伏接入配电网引发的电压越限问题,基于IEEE 33节点系统开展仿真研究。首先分析了光伏出力的随机性和波动性特性,采用Beta分布和马尔可夫链方法建立光伏出力模型;其次在MATLAB/Simulink平台搭建完整测试系统,包含光伏模型、配电网线路模型和控制模块;最后通过多场景仿真定量分析了不同光伏渗透率和接入位置对节点电压的影响。结果表明:光伏渗透率提高会显著增加电压越限风险,特别是线路末端节点;光伏接入位置对电压分布具有决定性影响,馈线末端接入更易引发电压越限。研究为含高比例光伏的配电

huanghm88的专栏 321

【数据结构】顺序表

本篇博客我们来总结下线性表中的顺序表有关知识,并通过C语言代码实现出一个顺序表若有问题 评论区见感兴趣就关注一下吧。

m0_74091744的博客 4622

AES-128-CMAC:背景、汽车应用、CAPL 实现与开源工具验证

本文详解车载诊断中AES-128-CMAC算法的原理与应用,涵盖其在UDS安全访问、刷写鉴权、SecOC认证及密钥派生中的核心作用。结合真实汽车电子场景,提供纯CAPL实现代码与测试脚本,并通过pycryptodome进行逐字节验证,确保算法正确性。全程基于CANoe实测数据,可直接用于HIL环境复现,助力开发者高效落地汽车网络安全方案。

蚂蚁小兵 113

数据结构·顺序表

学习数据结构与算法之前,一般是先学数据结构,方便之后学习算法,那么数据结构拆开介绍,就是数据 和 结构,数据,生活中到处都是,结构,就是数据存储的方式,即。

更新各种计算机技能~ 1988

Hermes 教程 03:Skills 系统

摘要:Hermes Skills是一种自我改进机制,可将解决问题的经验保存为可复用技能文档。v0.13.0版本遵循agentskills.io开放标准,与Claude Skills互通。技能创建流程包括发现问题、创建技能文件、加载使用和优化更新四个阶段。系统提供技能检索和自维护机制(Curator),支持技能媒体路由和多种管理命令。内置技能涵盖开发调试、创意头脑风暴等场景,通过积累技能使Hermes更适应用户需求。

程序猿_三产 728

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【数据结构初阶】--顺序表(一)

本篇博客介绍了数据结构中的顺序表概念与实现。主要内容包括:1)顺序表与线性表的关系,顺序表是物理结构连续的线性表;2)静态顺序表与动态顺序表的分类及差异;3)动态顺序表的三文件实现方式(.h声明、.c定义、test.c测试)。重点讲解了动态顺序表的初始化实现,强调传址调用的必要性。通过代码示例和重点提示帮助大家理解顺序表的底层实现原理。后续将介绍顺序表的增删查改等操作接口。

会当凌绝顶,一览众山小 7497

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

数据结构--顺序表

顺序表是数据结构中线性表的一种存储结构。它按逻辑顺序依次存储数据元素,在内存中占据连续空间。从概念分类上,可分为静态顺序表和动态顺序表。前者大小固定,后者能按需调整容量,它们都具有随机访问特性,利于高效查找元素。

2402_88461821的博客 1614

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Java——数据结构之顺序表

Java——数据结构之顺序表   在之前的学习中,我们主要了解了很多 Java 的 基本语法,但是 在之后的 Java学习中,了解 基础 数据结构的知识 非常重要,数据结构的思想 可以帮助我们更加清晰 明白的了解 Java 的解题思路等等。   今天我们就来开始学习 实现一个 Java 基础的 顺序表。 1.顺序表的简单了解   顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。   顺序表一般可以分为:   静态顺序表:使用

rain67的博客 6221

【数据结构】—— 顺序表

顺序表(Sequential List)是一种基本的数据结构,它通过一组连续的存储单元来存储具有相同类型的数据元素。

ElvInR的博客 1765

数据结构——顺序表

本文系统介绍了顺序表的数据结构实现方法。首先定义了顺序表的基本概念,区分了静态和动态顺序表的区别。重点阐述了动态顺序表的实现过程,包括初始化、增删改查等核心功能:1)详细讲解了尾插、头插两种插入方式;2)介绍了尾删、头删等删除操作;3)实现了指定位置插入删除功能;4)提供了查找和扩容机制。文章采用模块化设计方法,将顺序表功能分解为多个函数实现,并给出了完整的代码示例。最后强调了顺序表作为线性表基础数据结构的重要性,为后续学习更复杂的链表等数据结构奠定基础。

zhangzhangip的博客 1433

顺序表(一)(数据结构)

比如现在有一个数组包含数据1 2 3 4 ,那么现在我要删除4这个数据,我们知道size是指向有效数据的下一个位置,也就是4的后面一个位置,那么现在我让size--就会让size指向4的位置,当我们打印的时候这个位置的数据就不是有效的数据了,而且在尾部插入数据的时候在空间充足的时候我们是直接将新的数据元素之直接插在size的位置上,然后再让size++。但是在物理结构上并不一定是连续的,物理结构是数据在内存上的存储形式,线性表在物理结构上存储时,通常以数组和链式结构的形式存储。

OKkankan的博客 2337
上一篇: D - MaratonIME in the golden moment Gym - 101375D
下一篇: L - MaratonIME doesn't like odd numbers Gym - 101375L
RR-RR
博客等级 码龄10年 23粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值