顺序表删除多余值相等的元素

2024-06-02 21:48

本文主要是介绍顺序表删除多余值相等的元素,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#include <stdio.h>
#include <malloc.h>#define scanf_s scanf#define LIST_INIT_SIZE 100
typedef int ElemType;
typedef struct {ElemType *elem; // 存储空间基址int length; // 当前长度
} SqList;int menu_select() // 菜单驱动程序
{int sn;printf("       在顺序表上删除所有值相等的多余元素\n"); //显示菜单printf("==============================\n");printf("   1、顺序表的建立\n");printf("   2、删除表中值相等的多余元素\n");printf("   3、显示顺序表的内容\n");printf("   0、退出\n");printf("==============================\n");printf("  请选择0--3:  ");for (;;) // 菜单功能选择{scanf_s("%d", &sn);getchar();fflush(stdin);if (sn < 0 || sn > 3)printf("\n\t 输入选择错误,请重新选择 0--3: ");elsebreak;}return sn;
}void InitList(SqList *l) { // 初始化顺序表l->elem = (ElemType*) malloc(LIST_INIT_SIZE * sizeof(ElemType));l->length = 0;
}
void CreateList(SqList *l) { // 创建顺序表int data, i = 0;scanf("%d", &data);while (!(data < 0)) {l->elem[i++] = data;l->length++;scanf("%d", &data);}
}
void print(SqList list) { // 打印顺序表int i = 0;while (i < list.length) {printf("%d ", list.elem[i++]);}printf("\n");
}
/* 
TODO: 删除表中值相等的多余元素
参数说明: l是顺序表
注:1 2 2 2 2 2 2 2 2 2 90删除表中值相等的多余元素后为1 2 90
*/
void distinc(SqList *l) { //去除重复元素}void main() {SqList L;InitList(&L);for (;;) // 无限循环,选择0 退出{switch (menu_select()) // 调用菜单函数,按返回值选择功能函数{case 1:printf("建立并输入顺序表:\n");printf("输入正整数:(负数代表结束输入)\n");CreateList(&L);break;case 2:printf("去除重复元素:");distinc(&L);break;case 3:print(L);printf("\n");break;case 0:printf(" 再见!\n"); //退出系统return;} // switch语句结束} // for循环结束
} // main()函数结束

这篇关于顺序表删除多余值相等的元素的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1025184

相关文章

redis过期key的删除策略介绍

《redis过期key的删除策略介绍》:本文主要介绍redis过期key的删除策略,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录第一种策略:被动删除第二种策略:定期删除第三种策略:强制删除关于big key的清理UNLINK命令FLUSHALL/FLUSHDB命

如何高效移除C++关联容器中的元素

《如何高效移除C++关联容器中的元素》关联容器和顺序容器有着很大不同,关联容器中的元素是按照关键字来保存和访问的,而顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的,本文介绍了如何高效移除C+... 目录一、简介二、移除给定位置的元素三、移除与特定键值等价的元素四、移除满足特android定条件的元

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

macOS无效Launchpad图标轻松删除的4 种实用方法

《macOS无效Launchpad图标轻松删除的4种实用方法》mac中不在appstore上下载的应用经常在删除后它的图标还残留在launchpad中,并且长按图标也不会出现删除符号,下面解决这个问... 在 MACOS 上,Launchpad(也就是「启动台」)是一个便捷的 App 启动工具。但有时候,应

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

C++从序列容器中删除元素的四种方法

《C++从序列容器中删除元素的四种方法》删除元素的方法在序列容器和关联容器之间是非常不同的,在序列容器中,vector和string是最常用的,但这里也会介绍deque和list以供全面了解,尽管在一... 目录一、简介二、移除给定位置的元素三、移除与某个值相等的元素3.1、序列容器vector、deque

C++常见容器获取头元素的方法大全

《C++常见容器获取头元素的方法大全》在C++编程中,容器是存储和管理数据集合的重要工具,不同的容器提供了不同的接口来访问和操作其中的元素,获取容器的头元素(即第一个元素)是常见的操作之一,本文将详细... 目录一、std::vector二、std::list三、std::deque四、std::forwa

C++原地删除有序数组重复项的N种方法

《C++原地删除有序数组重复项的N种方法》给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度,不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(... 目录一、问题二、问题分析三、算法实现四、问题变体:最多保留两次五、分析和代码实现5.1、问题分析5.

SQL Server清除日志文件ERRORLOG和删除tempdb.mdf

《SQLServer清除日志文件ERRORLOG和删除tempdb.mdf》数据库再使用一段时间后,日志文件会增大,特别是在磁盘容量不足的情况下,更是需要缩减,以下为缩减方法:如果可以停止SQLSe... 目录缩减 ERRORLOG 文件(停止服务后)停止 SQL Server 服务:找到错误日志文件:删除