思路:

  不要去考虑删除的字眼,要考虑如何进行保存非 x 的值

这里提供两种解法,殊途同归:

  1.将其中非 x 的元素统计并保存

  2.统计为 x 的元素个数,并将非 x 的元素保存

注意事项:

注意这里代码由于使用了引用(&),只能在 C++ 中编译通过

使用指针的时候一定要注意开辟空间,否则之后可能发现无法预知的错误

代码如下:

 #include <stdio.h>
#include <stdlib.h>
#define MaxSize 50
typedef int ElemType; typedef struct {
ElemType data[MaxSize];
int length;
} Sqlist; //将其中非 x 的元素统计并保存
void delnode1(Sqlist* &L, ElemType x) {
int k = , i;
for(i = ; i < L -> length; i++) {
if(L -> data[i] != x) {
L -> data[k] = L -> data[i];
k++;
}
}
L -> length = k;
} //统计为 x 的元素个数,并将非 x 的元素保存
void delnode2(Sqlist* &L, ElemType x) {
int k = , i;
for (i = ; i < L -> length; i++) {
if (L -> data[i] == x) {
k++;
} else {
L -> data[i - k] = L -> data[i];
}
}
L -> length -= k;
} void createList(Sqlist* &L, ElemType a[], int n) {
int i;
L = (Sqlist *)malloc(sizeof(Sqlist));
for (i = ; i < n; i++) {
L -> data[i] = a[i];
}
L -> length = n;
} void dispList(Sqlist *L) {
int i;
for (i = ; i < L -> length; i++) {
printf("%d ", L -> data[i]);
}
printf("\n");
} int main(int argc, char const *argv[]) {
Sqlist *L;
ElemType a[] = {, , , , , , , , , };
createList(L, a, );
printf("原始线性表:\n");
dispList(L);
delnode1(L, );
printf("删除 3 后:\n");
dispList(L);
delnode2(L, );
printf("删除 4 后:\n");
dispList(L);
return ;
}

轻点加号,代码即现

运行结果在这儿*^_^*

原始线性表:

删除  后:

删除  后:
9

顺序表删除值为 x 的元素的更多相关文章

  1. 数据结构顺序表删除所有特定元素x

    顺序表类定义: template<class T> class SeqList : { public: SeqList(int mSize); ~SeqList() { delete[] ...

  2. 顺序表添加与删除元素以及 php实现顺序表实例

    对顺序表的操作,添加与删除元素. 增加元素 如下图所示  对顺序列表 Li [1328,693,2529,254]  添加一个元素 111 ,有三种方式: a)尾部端插入元素,时间复杂度O(1);  ...

  3. 线性表之顺序表C++实现

    线性表之顺序表 一.头文件:SeqList.h //顺序线性表的头文件 #include<iostream> ; //定义顺序表SeqList的模板类 template<class ...

  4. SDUT OJ 顺序表应用2:多余元素删除之建表算法

    顺序表应用2:多余元素删除之建表算法 Time Limit: 3 ms Memory Limit: 600 KiB Submit Statistic Discuss Problem Descripti ...

  5. SDUT OJ 顺序表应用1:多余元素删除之移位算法

    顺序表应用1:多余元素删除之移位算法 Time Limit: 1000 ms Memory Limit: 650 KiB Submit Statistic Discuss Problem Descri ...

  6. 顺序表应用1:多余元素删除之移位算法(SDUT 3324)

    Problem Description 一个长度不超过10000数据的顺序表,可能存在着一些值相同的"多余"数据元素(类型为整型),编写一个程序将"多余"的数据 ...

  7. 顺序表应用2:多余元素删除之建表算法(SDUT 3325)

    题解: 每次询问一遍,如果已经存在就不用插入表中了. #include <stdio.h> #include <stdlib.h> #include <string.h& ...

  8. 顺序表C语言版

    #include <stdio.h> /* * 顺序表最多输入N个数 */ #define N 10 #define OK 1 #define ERROR -1 struct sequeu ...

  9. hrbustoj 1545:基础数据结构——顺序表(2)(数据结构,顺序表的实现及基本操作,入门题)

    基础数据结构——顺序表(2) Time Limit: 1000 MS    Memory Limit: 10240 K Total Submit: 355(143 users) Total Accep ...

随机推荐

  1. 【Leetcode】【Medium】Gray Code

    The gray code is a binary numeral system where two successive values differ in only one bit. Given a ...

  2. HTML5新增功能

    HTML5日期输入类型(date) 1.HTML5规范里只规定date新型input输入类型 HTML5里的dateinput类型给了给了浏览器实现原生日历的机会,从此之后,JavaScript版的日 ...

  3. Eclipse环境下配置Tomcat,并且把项目部署到Tomcat服务器上

    一 配置Tomcat 1.打开Eclipse,单击"Window"菜单,选择下方的"Preferences". 2.单击"Server"选项 ...

  4. angular中ngOnChanges与组件变化检测的关系

    1.ngOnChanges只有在输入值改变的时候才会触发,如果输入值(@Input)是一个对象,改变对象内的属性的话是不会触发ngOnChanges的. 2.组件的变化检测: 2a.changeDet ...

  5. POJ-2992 Divisors---组合数求因子数目

    题目链接: https://cn.vjudge.net/problem/POJ-2992 题目大意: 给出组合数Cnk,求出其因子个数,其中n,k不大于431,组合数的值在long long范围内 解 ...

  6. LAMP的简介

    **********************补2016年5月23日的博客************************* LAMP--------Linux  Apache  MySQL  PHP ...

  7. ASP.NET SingalR + MongoDB 实现简单聊天室(三):实现用户群聊,总结完善

    前两篇已经介绍的差不多了,本篇就作为收尾. 使用hub方法初始化聊天室的基本步骤和注意事项 首先确保页面已经引用了jquery和singalR.js还有对应的hubs文件,注意,MVC框架有时会将jq ...

  8. VMware12上安装CentOS无法上网问题

    进入/etc/sysconfig/network-scripts目录下,查看有没有ifcfg-XXX的文件(ifcfg-lo除外), 没找到网卡设备,原因:由于Vmware虚拟网卡和Linux兼容问题 ...

  9. ASP.NET Core MVC如何上传文件及处理大文件上传

    用文件模型绑定接口:IFormFile (小文件上传) 当你使用IFormFile接口来上传文件的时候,一定要注意,IFormFile会将一个Http请求中的所有文件都读取到服务器内存后,才会触发AS ...

  10. Many-to-many relationships in EF Core 2.0 – Part 3: Hiding as ICollection

    In the previous post we ended up with entities that hide the join entity from the public surface. Ho ...