顺序表的插入和删除(基于c语言)
插入:在下标p处插入数据x;返回是否成功(0/1)
几个注意点:1.还能否插入数据;2.给的下标p是否是错误的以及p的范围;3.移动时的易错点(从下标大的元素开始);4.n与palist->n;elelmen[p]与palist->element[p]
int insertPre_seq(PSeqList palist,int p,DataType x){
int q; //两种退出情况
if (palist->n >= palist->MAXNUM){
printf("OVERFLOW!"); //1.顺序表中存入的数据已经满了
return 0;
}
if (p<0 || p>palist->n){
printf("WRONGNUM"); //2.下标不存在
return 0;
}
for (q=palist->n-1;q>=p;q--){ //移动时从下标大的元素开始,如果从下标小的地方开始,后续的数据全部变成原来的palist->element[p]
palist->element[q+1] = palist->element[q];
}
palist->element[p] = x;
palist->n = palist->n + 1;
return 1;
}
在写程序的时候经常会不由自主地写成n而不是正确的palist->n;
主要就是能够理解为什么要从下标大的元素开始,后面还会有从下标小的元素开始。
删除:
int deleteP_seq(PSeqList palist,int p){
int q;
if (p<0 || p>=palist->n){
printf("WRONGNUM!"); //一种退出情况,就是输入有问题
return 0;
}
for (q=p;q<palist->n-1;q++){
palist->element[q] = palist->element[q+1]; //移动从下标小的元素开始
}
palist->n = palist->n - 1;
return 1;
}
删除理解起来比插入简单。
书中未给出的另一种插入和删除后续给出
- 添加到短语集
- 没有此单词集:中文(简体) -> 英语...
- 创建新的单词集...
- 没有此单词集:中文(简体) -> 英语...
- 拷贝
顺序表的插入和删除(基于c语言)的更多相关文章
- AVL树(查找、插入、删除)——C语言
AVL树 平衡二叉查找树(Self-balancing binary search tree)又被称为AVL树(AVL树是根据它的发明者G. M. Adelson-Velskii和E. M. Land ...
- MySQL 向表中插入、删除数据
一.向表中插入一条信息 1.查看表中的数据 mysql> SELECT * FROM user; +----+---------+----------+ | id | account | pas ...
- 二叉查找树(查找、插入、删除)——C语言
二叉查找树 二叉查找树(BST:Binary Search Tree)是一种特殊的二叉树,它改善了二叉树节点查找的效率.二叉查找树有以下性质: (1)若左子树不空,则左子树上所有节点的值均小于它的根节 ...
- 用Java操纵HBase数据库(新建表,插入,删除,查找)
java代码如下: package db.insert; /* * 创建一个students表,并进行相关操作 */ import java.io.IOException; import java.i ...
- [Python] 数据结构--实现顺序表、链表、栈和队列
说明: 本文主要展示Python实现的几种常用数据结构:顺序表.链表.栈和队列. 附有实现代码. 来源主要参考网络文章. 一.顺序表 1.顺序表的结构 一个顺序表的完整信息包括两部分,一部分是表中元素 ...
- Java数据结构-线性表之顺序表ArrayList
线性表的顺序存储结构.也称为顺序表.指用一段连续的存储单元依次存储线性表中的数据元素. 依据顺序表的特性,我们用数组来实现顺序表,以下是我通过数组实现的Java版本号的顺序表. package com ...
- C++语言实现顺序表
C++语言实现顺序表 顺序表的定义及其特点 顺序表的定义是:把线性表中的所有表项按照其逻辑顺序依次存储到从计算机存储中指定存储位置开始的一块连续的存储空间中. 这样,线性表中第一个表项的存储位置就是被 ...
- 基于C++的顺序表的实现
顺序表,是数据结构中按顺序方式存储的线性表,又称向量.具有方便检索的特点.以下,是笔者学习是基于C++实现的顺序表代码,贴上来当网页笔记用. #include <iostream> usi ...
- [数据结构]C#基于数组实现泛型顺序表
前方预警,只完成了顺序表的插入/删除/查找. 错误代码示例: /// <summary> /// 查找顺序表第i个位置的元素 /// 在显示情况中,我们更常用下标 /// </sum ...
随机推荐
- ASP.NET Core 6框架揭秘实例演示[05]:依赖注入基本编程模式
毫不夸张地说,整个ASP.NET Core就是建立在依赖注入框架之上的.ASP.NET Core应用在启动时构建管道所需的服务,以及管道处理请求使用到的服务,均来源于依赖注入容器.依赖注入容器不仅为A ...
- Flask中本地栈的使用
4种上下文变量 承接上一篇内容.当一个请求到来时,除了request被封装成全局变量之外,还有三个变量也是同样被封装成全局变量,那就是current_app.g.session.上面4个变量之所以能够 ...
- Nginx--Sorry, the page you are looking for is currently unavailable
- 我们一起来学Shell - shell的并发及并发控制
文章目录 bash的并发 未使用并发的脚本 简单修改 使用wait命令 控制并发进程的数量 文件描述符 查看当前进程打开的文件 自定义当前进程用描述符号操作文件 管道 我们一起来学Shell - 初识 ...
- 使用传统的三层架构出现的问题.引入Spring底层实现原理来解决(工厂模式+反射+XML配置文件/注解)
以前写的代码 mapper层 public interface PersonMapper { void selectPersonList(); } public class PersonMapperI ...
- 使用PostMan Canary测试受Identity Server 4保护的Web Api
在<Asp.Net Core: Swagger 与 Identity Server 4>一文中介绍了如何生成受保护的Web Api的Swagger文档,本文介绍使用PostMan Cana ...
- Burp suite基本配置介绍
实验目的 利用Burp Spider功能探测目标网站的目录结构. 实验原理 1)Burp Suite是Web应用程序测试的最佳工具之一,其多种功能可以帮我们执行各种任务.请求的拦截和修改,扫描web应 ...
- linux的分区方法
linux分区方法,不同的人有不同的方法,反正没有统一的方法.在分区方面,我觉得根据自己的实际情况来分是最好的.玩linux也有好几年了,下面说一下,我在分区方面的一些经验. 一,个人用 如果是个人用 ...
- 苹果如何控制android手机,安卓手机怎么控制苹果?
小编经常通过手机远程控制别人手机,帮助他人解决一些电脑问题,另外还经常需要通过远程电脑控制服务器,管理脚本之家的服务器等等,可能这些对大家都没有什么诱惑,今天笔者为大家带来一个非常有趣的手机控制电脑的 ...
- 【C#基础概念】字节顺序(大端、小端)
字节顺序,又称端序或尾序(英語:Endianness),在计算机科学领域中,指電腦記憶體中或在数字通信链路中,组成多字节的字的字节的排列顺序. 例如假设上述变量x类型为int,位于地址0x100处,它 ...