首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

顺序表实现--通讯录

前言: 通过对数据结构--顺序表的学习,了解了顺序表的增加数据,删除数据等功能;我们就可以基于顺序表来实现通讯录,接下来就一起来实现通讯录。...SeqList)重命名成通讯录(Contact) 不过这里需要注意的时:我们是基于顺序表来实现通讯录,我们需要通讯录的头文件,也需要用到顺序表的相关代码,两个头文件在使用时都会用到另一个头文件的东西,而头文件又不能相互包含...,(这里在通讯录头文件Contact.h中只需声明顺序表结构体就可以了(不可以直接使用重命名后的结构体名)),顺序表实现的头文件直接包含Contact.h即可(因为会涉及到数据类型重命名和插入、查找数据等...通讯录销毁 通讯录的初始化和销毁其实就是顺序表的初始化和销毁,这里直接使用顺序表的初始化和销毁函数即可。...有很多是顺序表实现的相关代码,这里可以直接拿来用,这里只展示通讯录的相关代码,顺序表的代码可以查看上篇文章 顺序表。

8510
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    通讯录----顺序表版本

    1.通讯录的实现逻辑 对于通讯录,我们做的无非就是初始化,销毁。...,顺序表的打印,这些我们是可以直接进行使用的; 我们的顺序表是整形的数据的删除,插入等等,那么我们的通讯录不是对整形数据进行相关的操作了,而是对联系人的信息进行相应的操作,我们把联系人及其相关的信息放到一个结构体里面...,我们联系人的信息包括姓名性别年龄,电话以及地址这5项信息; 2.通讯录实现 (1)一些前期的准备 我们要在顺序表的基础上进行相应的操作,所以我们的解决方案在原来的seqlist.c---seqlist.h...(名字性别电话),方便我们对数组的大小进行相应的修改; 我们同时要把顺序表的头文件里面的int修改为我们联系人对应的结构体类型的数据,这个时候要包含通讯录对应的头文件; 通讯录的头文件要使用应该是对于顺序表进行初始化...(实际上是对通讯录进行初始化),我们对顺序表进行初始化contactinit(sl* sl1),这个里面的sl就是我们的顺序表重定义之后的名字,sl1是形参,但是我们明明是要对通讯录进行初始化,参数确是顺序表这让人很难理解

    3300

    【通讯录项目 (1 3)】基于顺序表的通讯录实现——顺序表介绍

    基于顺序表的通讯录实现——顺序表介绍 文章目录 基于顺序表的通讯录实现——顺序表介绍 1.1 数据结构 1.1.1什么是数据? 1.1.2什么是结构? 概念 :数据结构是计算机存储、组织数据的⽅式。...1.2 为什么需要数据结构 1.2.1概念引入 1.2.1数据结构类型 1.3顺序表 1.3.1概念及结构 1.3.2顺序表分类 静态顺序表 动态顺序表 1.3.3顺序表实现 下一篇文章将详细介绍顺序表的具体操作实现...1.3顺序表 1.3.1概念及结构 顺序表是一种线性表, 线性表(linear list)是n个具有相同特性的数据元素的有限序列。...线性表是⼀种在实际中⼴泛使⽤的数据结构,常⻅的线性表:顺序表、链表、栈、队列、字符串… 线性表在逻辑上是线性结构,也就说是连续的⼀条直线。...但是在物理结构上并不⼀定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。 1.3.2顺序表分类 顺序表的底层逻辑是数组。并在数组基础上增添了增删改查窗口。

    18510

    基于静态顺序表实现通讯录

    它调用SLInit来确保通讯录(被视为顺序表)的内部状态是干净的,即没有分配内存且大小与容量均为0。 ContactDesTroy:销毁通讯录。...它调用SLDestroy来释放通讯录占用的内存资源,并确保通讯录回到初始状态。 SLInit:初始化顺序表。它将顺序表的数组指针设为NULL,大小与容量均设为0,表示这是一个空表。...这段代码主要实现了两个功能:添加联系人到通讯录(ContactAdd函数)和在顺序表尾部插入数据(SLPushBack函数)。...最后,调用`SLPushBack`函数,将这个联系人的信息添加到通讯录(实际上是一个顺序表)中。 2....void ContactShow(Contact* pcon) { //格式大家下去感兴趣去调整 printf("%s %s %s %s %s\n", "姓名", "性别", "年龄"

    15310

    拿捏 顺序表(2) ----- 实现通讯录

    正文开始 前言 书接上文, 我们已经初步了解了线性表, 顺序表其实就是在数组的基础上增加了一些特有的功能, 那么顺序表有哪些应用呢? 下面我们一起使用顺序表实现通讯录的功能. 博客主页:酷酷学!!!...(SL* sp, int pos); //查找元素所在位置 int SLFind(SL* sp, DataType x); 上篇我们已经了解了顺序表基础的运用, 基于此我们让顺序表的功能更完善 实现代码如下...实现方法 第一步: 基于顺序表我们在此之上创建两个文件, 分别为Contact.h和Contact.c用来存放通讯录的声明和方法实现 第二步: #pragma once #define MAX_NAME..., 并且包含通讯录的头文件, 这里可以直接使用 typedef peoInfo SeqList 直接修改名字, 就是因为已经包含了通讯录的头文件 第四步: 实现通讯录的各种方法 现在通讯录Contact.h...效果展示 界面: 增加联系人并且查看 删除联系人并且查看 修改查找 总结 只要掌握了顺序表的实现方法, 通讯录就是在顺序表的基础上套个壳子, 结合文件操作我们也可以把数据存储起来. 完

    11210

    【通讯录项目 (3 3)】基于顺序表的通讯录实现——通讯录项目实现

    【通讯录项目 (3 / 3)】基于顺序表的通讯录实现——通讯录项目实现 前言 前两章我们已经知道顺序表的功能并完成了功能实现,下面我们将实现通讯录的以下功能: 1 项目预备工作 1.1 多文件处理...我们基于顺序表在进行操作。如有不理解的地方请参考【通讯录项目 (2 / 3)】,下面不对 顺序表功能 进行详细说明 我们会使用顺序表大多数功能,请理解顺序表的功能在进行阅读。...2.1 初始化通讯录 “初始化”只需要简单的引用顺序表的初始化即可。...2.4 展示通讯录 展示通讯录的功能是对顺序表展示的扩展。...下面我们开始完善界面内容,来把通讯录的功能进行整合。

    14910

    顺序表的应用——通讯录的创建

    小编在前面说过,通讯录是顺序表的一个应用,所以其实我们想要实现通讯录,就必须以顺序表作为基础,所以顺序表是通讯录实现的底层代码,读者朋友们一定要先掌握好顺序表的内容在搞通讯录,不要一口吃个小编。...1.3.通讯录的逻辑实现 和顺序表一样,通讯录想要实现也需要创建两个文件,一个是存放通讯录的创建以及部分函数声明的头文件,一个是实现函数的.c文件(源文件)。...,我们在创立完成以后,便可以开始对通讯录进行初始化了   小编在刚刚说出哦,通讯录的实现的底层代码是顺序表,所以我们可以完全通过前文的顺序表的代码,来基于此开展最详细的代码书写,不过此时我们要更改一些数据...,就比如前文我们讲过的顺序表的变量都是整型,这次要改成结构体类型了(通讯表的类型),此时就要展现小编前文写过的对于typedef的妙用了,这个时候我们直接把整型改成通讯录的结构体类型就好了,这里就展示了此代码的灵活性...之后我们再利用顺序表的初始化在对通讯表进行初始化,销毁的操作也是一样的,小编就不一一废话了。

    5910

    数据结构·顺序表实现通讯录

    引言: 有了前面顺序表的基础,我们可以尝试利用顺序表实现通讯录,日常使用中,通讯录可以实现的功能有增加联系人,删除联系人,查找联系人,修改联系人,查看联系人等,我们通过本章的学习实现以上五种功能(默认通讯录包含的元素有...} while (input); ConDestroy(&con); return 0; } case 对应的语句就是我们要执行的操作,大的操作有增删查改以及查找五个操作,那么在实现之前,顺序表的结构体类型...- 1; i++) { pcon->arr[i] = pcon->arr[i + 1]; } pcon->size--; } 这五个基本操作可以说是为了后面的几大功能做铺垫,且与之前的顺序表并无两样...; } 5 查看通讯录 查看通讯录无非就是打印通讯录,那么只需要用上最基本的for循环就行了: void ContactPrint(Seq* pcon)//查看通讯录 { assert(pcon);...9 整体代码 以上就就是顺序表实现通讯录的全部过程,整体代码如下: contact头文件: #pragma once #include #include #include

    7410

    【通讯录项目 (2 3)】基于顺序表的通讯录实现——顺序表功能实现

    基于顺序表的通讯录实现——顺序表功能实现 顺序表功能实现 基于顺序表的通讯录实现——顺序表功能实现 1 初始化与销毁 1.1 初始化 1.2 销毁 2 头部插入与删除 2.1 头部插入 2.1.1检查容量...5.1 打印顺序表 6 结束语 期待下一次与你见面!!!...经过上一篇文章我们对顺序表有了一个初步的认识,下面我们将通过C语言实现顺序表的功能,包括: 增加数据 删除数据 查找数据 修改数据 可以把顺序表看作一种特殊的数组,我们下面将要进行的操作是基于...6 结束语 顺序表的功能我们已经实现,我们使用的是最简单的顺序表,所以整个过程看起来没有困难。在下一篇文章中我们将进行通讯录的实现。...在通讯录里,顺序表的类型不在是简单的" int ",而是结构体类型。 下面给出通讯录的基本功能供大家参考预习。

    14510

    【初阶数据结构】:顺序表及其通讯录应用

    线性表是⼀种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串... (2)线性表结构特点 (a)逻辑结构:逻辑上是线性结构,也就说是连续的⼀条直线。...静态顺序表的定长数组导致N定大了,空间开多了浪 费,开少了不够用。所以现实中基本都是使用动态顺序表,根据需要动态的分配空间大小,所以下面我们实现动态顺序表。...5.顺序表的应用:通讯录 C语言基础要求:结构体、动态内存管理、顺序表、文件操作 1.基于动态顺序表实现通讯录 功能要求: 1)至少能够存储100个⼈的通讯信息 2)能够保存用户信息:名字、性别、年龄、...; } 在正式添加数据之前我们需要跟据我们输入的姓名与顺序表中存储的arr[i].name来比较判断通讯录中是否已有该联系人信息,避免空删,之后根据名字查找函数,找到要删除联系人信息存储位置,用封装的...注:与动态顺序表实现的通讯录相比较,静态顺序表实现通讯录会出现通许录满情况,添加前应该考虑是否通讯录已满,同时对于用来存放结构体的静态顺序表,由于数组与结构体特性,原本一些初始化会不太可行,因此笔者采用

    9410

    案例分享|200 smart PLC和称重表走modbus通讯

    1,一台支持Modbus协议的称重仪表 支持Modbus协议的称重仪表 2,设置好仪表的通讯参数 根据自己的要求可以调整,只要和PLC端统一就可以 波特率:9600 数据格式:8n1:8位数据/无校验位...通讯方式:Modbus协议 校验和:OFF 仪表通讯地址:1 3,确定所要读取的变量地址 这里我们只需要读取仪表的当前实时重量即可 仪表实时重量的地址为0,对应Modbus通讯里的40001 4,200...smart PLC一台 5,连接端口 将仪表端的RS485接口A,B与PLC端的DB9接口相连(DB9接口的3为A,8为B) 如何A B无法通讯,可以自行对调一下 准备工作完毕,接下来就开始我们的PLC...寄存器地址为0,对应Modbus通讯里的地址40001 参数“计数”(Count) 用于分配要在该请求中读取或写入的数据元素数。读取仪表中保持寄存器字数。

    64610

    【数据结构】顺序表实操——通讯录项目

    前言 本篇文章将介绍一个运用顺序表的例子——通讯录项目。 通讯录我们都知道,细细一想通讯录不就是一个顺序表吗?...接下来将详细介绍基于顺序表的通讯录项目搭建的具体过程。...; int size;//数据个数 int capacity;//空间大小 }SL; 2、通讯录的初始化和销毁 我们操作通讯录,实际上就是操作顺序表 那么通讯录的初始化和销毁,实际上就是顺序表的初始化和销毁...首先我们需要一个结构体变量来存联系人的各种信息,然后再将这个结构体变量插入到通讯录(顺序表)中,插入方式可以有多种。...只是上文的顺序表存储的是整型数据,而本文的顺序表存储的结构体类型数据而已 在本篇文章中我们更多的是对保存联系人信息的结构体类型进行相应的操作,通讯录实际上就是顺序表,而顺序表的相关操作是我们已经实现好了的

    10810

    万答#7,如何批量删数据和调整系统表空间

    2.系统表空间会不断膨胀。 3.锁定的记录多,更容易可能导致锁等待。...问1:如何优雅的删除大量数据 答: 1.如果表不需要就直接 drop 2.如果只保留表结构用 truncate 3.如果只保留部分数据可以使用 pt-archive 进行分批删除 特别注意,如果表太大的话...可以设置独立表空间,关键参数 innodb_file_per_table 独立表空间也会产生碎片,但是可以通过 OPTIMIZE TABLE 或 ALTER TABLE xxxx ENGINE=INNODB...;同时超过设定的最大值会导致SQL执行失败,关键参数 innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:5G 8.0 版本临时表空间有区分全局和...session级;垃圾SQL生成的临时表空间随着SQL的结束也会跟着自动释放。

    38530

    SQL Server 数据库调整表中列的顺序操作

    SQL Server 数据库中表一旦创建,我们不建议擅自调整列的顺序,特别是对应的应用系统已经上线,因为部分开发人员,不一定在代码中指明了列名。...表是否可以调整列的顺序,其实可以自主设置,我们建议在安装后设置为禁止。 那么,如果确实需要调整某一列的顺序,我们是怎么操作的呢? 下面,我们就要演示一下怎么取消这种限制。...需求及问题描述 1)测试表 Test001 (2)更新前 (3)例如,需求为调整 SN5 和SN4的序列 点击保存时报错 修改数据库表结构时提示【不允许保存更改。...您对无法重新创建的标进行了更改或者启用了“阻止保存要求重新创建表的更改"选项。】...】复选框 Step 4 再次执行调整列顺序操作,修改 OK

    4.3K20

    从上海分时电价机制调整看转供电用户电能计费

    ;或者按国家规定销售电价向电网企业缴纳电费,由所有用户按各分表电量公平分摊。...仪表具备丰富的分时费率调整功能,满足不同季节和月份分时电价的复杂变化,可通过有线/无线通讯方式和平台通讯。...图3 电能计费费控仪表3.2 计费管理软件实时计费:AcrelCloud-3200预付费管理平台配合预付费智能电表,做到一户一表、远程自动抄表、电费预充值、电表实时计量扣费、欠费自动跳闸。...图5 费用公摊平台下发分时电价设置:未来分时电价机制可能还会调整,而且随着电改深化调整可能会越来越频繁,那是不是每次调整都要去电表上更改时段和费率设置?不需要的。...图6 分时时段和电价下发电能计费/费控仪表安科瑞针对转供电企业提供多种电能计费方式,包括单相三相表、单户单表、多户表,预付费模式和后付费模式均可以灵活切换。

    42140
    领券