顺序表的插入和删除(基于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 ...
随机推荐
- 导航控制器跳转时隐藏底部tabbar
- (void)setting { // 跳转到设置界面 XMGSettingViewController *settingVc = [[XMGSettingViewController alloc] ...
- File常用的方法
import java.io.File; import java.io.IOException; /* 创建: createNewFile() 在指定位置创建一个空文件,成功就返回true,如果已存在 ...
- 一键部署mysql 无修改直接cp 执行 100% 有效
一键部署mysql 无修改直接cp 执行 100% 有效 将安装包拖至/opt目录下,编一个脚本文件,然后source执行脚本,等脚本执行完成, 即可使用mysql -u root -p点击 ...
- Firewalld防火墙——基础认知
Firewalld防火墙 1.Firewalld概述 2.firewalld与iptables 的区别 3.firewalld区域的概念 4.firewalld数据处理流程 5.firewalld检查 ...
- 更新docker镜像
方式一:通过export和import的方式 //导出容器快照到本地文件 $ docker export 1e560fca3906 > ubuntu.tar //将快照文件导入为新的镜像 $ c ...
- Lesson10——NumPy 迭代数组
NumPy 教程目录 NumPy 迭代数组 NumPy 迭代器对象 numpy.nditer 提供了一种灵活访问一个或者多个数组元素的方式. 迭代器最基本的任务的可以完成对数组元素的访问. Exa ...
- Linux用户配置文件、口令配置文件、组配置文件
1.用户配置文件:保存用户信息 /etc/passwd 2.口令配置文件 /etc/shadow 每一行解释:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效 ...
- 北京太速-611号-基于VU9P的5Gsps高速ADDA收发PCIe卡
1 板卡概述 基于XCVU9P的5Gsps AD DA收发PCIe板卡.该板卡要求符合PCIe 3.0标准,包含一片XCVU9P-2FLGA2014I.2组64-bit/8GB DDR4.2路高 ...
- iptTable规范
规范之HTML 先在当前页面放入几个表格设置按钮的html(样式可能需重新调整) <div class="bottom_nav1 ta_l" style="padd ...
- WPF 自定义文本框输入法 IME 跟随光标
本文告诉大家在 WPF 写一个自定义的文本框,如何实现让输入法跟随光标 本文非小白向,本文适合想开发自定义的文本框,从底层开始开发的文本库的伙伴.在开始之前,期望了解了文本库开发的基础知识 本文实现的 ...