一、与线性表相关的删除操作

1、从线性表中删除具有最小值的元素,并由函数返回被删除元素的值,空出的位置由最后一个元素填补

# define MaxSize 50// 顺序表类型定义
typedef struct SqList{ElemType data[MaxSize];int length;
}SpList;/*算法思想: 搜索整个顺序表,查找最小元素并记住其位置,搜索结束后用最后一个元素填补空出的最小值的位置 */// 删除最小元素
bool Del_min(SpList &L, ElemType &value) {if(L.length == 0){return false;         // 表空,返回false } value = L.data[0];          // 假设第一个位置就是最小值 int pos = 0 ;              // 0 号元素值最小 for(int i = 1;i<L.length;i++){    // 遍历顺序表,寻找最小值的元素 if(L.data[i]<value){value = L.data[i];pos = i;}}L.data[pos] = L.data[L.length-1];    // 让最后一个元素填补空位 L.length--;          // 表长 -1 return true;}

2、删除线性表中所有值为 x 的元素

# define MaxSize 50// 顺序表类型定义
typedef struct SqList{ElemType data[MaxSize];int length;
}SpList;/*算法思想:遍历顺序表,将不是 x 的元素保留下来  (删除所有 x 的元素)*/void del_X(SqList &L,ElemType x){int k = 0;          // 用来记录值不等于 x 的个数for(int i = 0;i<L.length;i++){ // 遍历顺序表 if(L.data[i] != x){L.data[k] = L.data[i];  //  将不等于x的元素保留下来  k++; }}L.length = k;           // 顺序表的长度 = k
} 

3、从顺序表中删除其值在给定值 x ~ t 之间的所有元素(x<t)

# define MaxSize 50// 顺序表类型定义
typedef struct SqList{ElemType data[MaxSize];int length;
}SpList;// 方法一、
/*算法思想:将L.data[i] < s 和L.data[i] > t 的元素保留 */
bool Del_s_t(SqList &L,ElemType s,ElemType t){if(L.length == 0|| s>t){     // 如果顺序表为空,返回false return false;}int k = 0; // 保存值小于 s ,值大于 t 的元素个数 for(int i = 0;i<L.length;i++){if(L.data[i]<s || L.data[i] >t){L.data[k]  = L.data[i];k++;}}L.length = k;return true;
} // 方法二、
/*算法思想:扫描顺序表,将位于 s~t 之间数的个数记为 k 个,将不是s~t之间的数向前移 k 个单位*/ bool Del_s_t(SqList &L,ElemType s,ElemType t){if(L.length == 0 || s>t){   // 如果顺序表为空,返回false return false;}int k = 0; // 保存值小于 s ,值大于 t 的元素个数 for(int i = 0;i<L.length;i++){if(L.data[i] >=s && L.data[i] <=t){k++;}else{L.data[i-k] = L.data[i];     // 将元素移动k个单位 }}L.length = L.length - k;        return true;
} 

4、从有序表中,删除所有值重复的元素

# define MaxSize 50// 顺序表类型定义
typedef struct SqList{ElemType data[MaxSize];int length;
}SpList;/*算法思想:第一个元素肯定不重复,两个指针 i,j 依次向后扫描,元素不重复就保留,重复的元素不保留*/bool Delete_same(SqList &L){if(L.length == 0){    // 如果顺序表为空,返回false return false;}int i;          // 存储第一个不重复元素 int j;            // 遍历线性表指针for(i = 0,i = 1;j<L.length;j++){if(L.data[i] != L.data[j]){//i++;//L.data[i] = L.data[j]; L.data[++i] = L.data[j]; // 将不重复的元素保留 }} L.length = i+1;return true;
}

数据结构代码题--与线性表的相关删除操作相关推荐

  1. 数据结构(三)线性表概念及Java代码实现顺序结构链式结构

    线性表的定义 零个或多个数据元素的有限序列. 线性表的抽象数据类型: package com.mylist;public interface MyList<E> extends Itera ...

  2. 《大话数据结构》读书笔记-线性表

    写在前面:本文仅供个人学习使用.<大话数据结构>通俗易懂,适合整体做笔记输出,构建体系.并且文中很多图片来源于该书. 文章目录 3.2 线性表的定义 3.3 线性表的抽象数据类型 3.4 ...

  3. 计算机数据结构代码题----Day02

    计算机数据结构代码题----Day02 顺序表代码题 题目01 从顺序表中删除其数值在给定数值为s与t之间,包含(s和t),要求(s<t)的所有元素,如果s或t的顺序不合理或者顺序表为空,则显示 ...

  4. 期末复习之数据结构 第2章 线性表

    目录 一.课本知识点 1.线性结构 2.线性表 3.线性表的顺序表示 4.顺序表的基本操作 5.线性表的链式表示 6.链表的基本操作 总结 二.练习题 一.课本知识点 1.线性结构 定义:若结构是非空 ...

  5. 【数据结构】夯实基础|线性表刷题01

    作者:努力学习的大一在校计算机专业学生,热爱学习和创作.目前在学习和分享:算法.数据结构.Java等相关知识. 博主主页: @是瑶瑶子啦 所属专栏: [数据结构|刷题专栏]:该专栏专注于数据结构知识, ...

  6. 从零开始学数据结构和算法(二)线性表的链式存储结构

    链表 链式存储结构 定义 线性表的链式存储结构的特点是用一组任意的存储单元的存储线性表的数据元素,这组存储单元是可以连续的,也可以是不连续的. 种类 结构图 单链表 应用:MessageQueue 插 ...

  7. c语言线性表库函数大全,数据结构(C语言版)-线性表习题详解

    <数据结构(C语言版)-线性表习题详解>由会员分享,可在线阅读,更多相关<数据结构(C语言版)-线性表习题详解(23页珍藏版)>请在人人文库网上搜索. 1.数 据 结 构 ,线 ...

  8. 数据结构与算法(一) 线性表之顺序表

     线性表是一种最简单.最常用的数据结构,根据存储方式可以分为顺序表和链表.  顺序表: 顺序表指的是用一组地址连续的存储单元依次存储线性表的数据元素,称为线性表的顺序存储结构或顺序映像(sequent ...

  9. 高一凡-数据结构第2章-线性表

    高一凡-数据结构第2章-线性表 2.2.1线性表的顺序表示和实现 1.初始化 2.销毁与清空 3.判空与长度 4.获取元素值与位置 2.2.2换一种写法 2.2.3归并 2.3.1线性表的链式表示和实 ...

最新文章

  1. Sublime Text3 运行Python 出现Error:Decode error - output not utf-8
  2. 一款b站视频下载工具软件mac版
  3. Chrome 90 里更好的字符串处理机制
  4. vue 侦听器侦听对象属性_不删除侦听器–使用ListenerHandles
  5. Qt自定义QML模块
  6. python3装饰器例子_Python装饰器几个有用又好玩的例子
  7. linux在shell中获取时间 date巧用
  8. 汇编语言王爽第四版(Debug与实验一)
  9. paraview热流图(2):3D glyphs representation
  10. 关系代数表达式优化步骤
  11. oracle调用web severs,PL/SQL调用WebService
  12. Generative Adversarial Networks in Computer Vision: A Survey and Taxonomy(计算机视觉中的GANs:综述与分类)
  13. 新编计算机英语第二版,新编计算机英语-电子教案
  14. 2017“编程之美”终章:AI之战勇者为王
  15. 安装与使用IPy模块
  16. matlab生成空图像,figure,imshow之后图像为空白图像
  17. 利用Canvas绘制雷达图
  18. cmd操作MySQL 多表查询(日记 day 4)
  19. 为什么装服务器系统,服务器系统装什么原因
  20. win10系统Apache无法启动怎么办?

热门文章

  1. 算法之路,带你轻松学废算法系列之字符串匹配(下)
  2. 通俗傻瓜式理清光栅化渲染和光线追踪渲染的原理
  3. ABAPFI FI/CO接口:待更新的不一致的FI/CO凭证标题数据
  4. vue3控制台一直报错, [WDS] Disconnected!
  5. mysql的语句啰嗦_sql简易教程
  6. 今生也是第一次开播详细讲解,有多少料全包了
  7. 51单片机 显示学号
  8. 图文混合文档转换编辑器
  9. 触摸面板智能开关一Homekit智能家居
  10. NEUQ-ACM预备队训练-week8(背包)