当前位置: 首页 > news >正文

6. 删除顺序表中的重复元素

p17 6. 删除顺序表中的重复元素

#include<stdio.h>
#include<stdlib.h>
#define MaxSize 100
typedef struct {int* data;int capacity;int length;
}SeqList;int InitList(SeqList &L) {L.data = (int*)malloc(MaxSize * sizeof(int));L.capacity = MaxSize;L.length = 0;return 1;
}
int CreateList(SeqList &L, int n) {int i;for (i = 0; i < n; i++) {scanf_s("%d", &L.data[i]);}L.length = n;return 1;
}
int ListDelete(SeqList& L,int i,int &e) {if (i > L.length || i < 0) {return 0;}e = L.data[i - 1];for (int j= i; j<L.length; j++) {L.data[j - 1] = L.data[j];}L.length--;
}
int ListInsert(SeqList &L, int i, int e) {if (i > L.length+1 || i < 0) {return 0;}for (int j = L.length; j >= i; j--) {L.data[j] = L.data[j - 1];}L.data[i - 1] = e;L.length++;return 1;
}
int LocateElem(SeqList& L, int e) {for (int i = 0; i < L.length; i++) {if (L.data[i] == e) {return i + 1;}}
}
void PrintList(SeqList L) {for (int i = 0; i < L.length; i++) {printf("%d ", L.data[i]);}printf("\n");
}
int DeleteMin(SeqList &L) {int m = 100000, locate;for (int i = 0; i < L.length; i++) {if (L.data[i] < m) {m = L.data[i];locate = i;}}	printf("%d  %d\n",m, locate);L.data[locate] = L.data[L.length-1];	return m;
}
void Deletefrom(SeqList &L,int s,int t) {if (s > t || s<0 || t>L.length - 1)exit(-1);int c = t - s;for (int i = t; i <L.length; i++) {L.data[i - c] = L.data[i];}L.length = L.length- c-1;
}
//有序表,所以找到第一个大于t的元素下标,第一个大于等于s的元素下标
void DeleteBetween(SeqList& L, int s, int t) {if (s >= t ||L.length==0)exit(-1);int i, j;for (i=0;i<L.length&&L.data[i] < s; i++);for (j=i; j < L.length && L.data[j] <= t; j++);for (; j< L.length; j++,i++) {L.data[i] = L.data[j];}L.length = i;
}void Reverse(SeqList& L) {for (int i = 0, j = L.length - 1; i <= L.length / 2; i++, j--) {int temp = L.data[i];L.data[i] = L.data[j];L.data[j] = temp;}
}
void Del_s_t(SeqList& L,int s,int t) {//删除顺序表中值在s和t之间的元素,用k记录值在s和t中元素的个数int k = 0;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];}}L.length = L.length - k;
}
void Del_Same(SeqList &L) {//删除顺序表中值重复元素int i,j;for (i = 0, j = 1; j < L.length - 1; j++) {if (L.data[i] != L.data[j]) {L.data[++i] = L.data[j];}}L.length = i+1;
}
int main() {	int n;scanf_s("%d", &n);SeqList L;InitList(L);CreateList(L,n);PrintList(L);Del_Same(L);PrintList(L);return 0;
}
http://www.lryc.cn/news/148493.html

相关文章:

  • Vue——axios的二次封装
  • JavaScript Web APIs -03 事件流、事件委托、其他事件(加载、滚动、尺寸)
  • QT DAY 2
  • ELK安装、部署、调试(三)zookeeper安装,配置
  • 企业级智能PDF及文档处理SDK GdPicture.NET 14.2 Crack
  • 应用程序管理工具
  • 当数据集较小时,调节学习率的方法
  • JS实现数组的扁平化(ES6实现)----例子+难点解析
  • git 提交错误,回滚到某一个版本
  • 数据结构:八种数据结构大全
  • Java正则表达式系列--Pattern和Matcher的使用
  • 40个web前端实战项目,练完即可就业,从入门到进阶,基础到框架,html_css【附视频+源码】
  • Erasure-Code(纠删码) 最佳实践
  • USB 转 4 串口芯片 CH9104
  • java实现医院门诊排班与预约系统【代码】
  • 8.Redis-set
  • 电子厂生产管理系统解决方案
  • ARM DIY(五)摄像头调试
  • hadoop2.2.0伪分布式搭建
  • 高级IO(select、poll、epoll)
  • Ceph基础知识和基础架构认识
  • 【C++】快速排序的学习和介绍
  • 第九章 动态规划part12(代码随想录)
  • ssm珠宝首饰交易平台源码和论文
  • 交互设计都有哪些准则?
  • 【MySQL】从哪几个角度分析数据库失败的原因?
  • Spring Boot 的核心注解SpringBootApplication
  • 自助式数据分析平台:JVS智能BI功能介绍(一)数据源
  • CSS魔术师Houdini,用浏览器引擎实现高级CSS效果
  • DC/DC开关电源学习笔记(二)开关电源的分类