删除Lb重复的数,用La输出(顺序表)
#include<stdio.h>
typedef int A;
const int LIST_INIT_SIZE=100;
const int LISTINCRMENT=10;
typedef struct
{
A *elem;
int Length;
int Listsize;
int incrementsize;
}List;
void InitList(List &L,int maxsize=LIST_INIT_SIZE,int incresize=LISTINCRMENT)
{
L.elem=new A[maxsize];
L.Length=0;
L.Listsize=maxsize;
L.incrementsize=incresize;
}
bool ListEmpty(List &L)
{
if(L.Length==0)
return true;
else
return false;
}
void ListDelete(List &L,int i,A &e)
{
A *p,*q;
if((i<1)||(i>L.Length))
printf("i值不合法");
p=&(L.elem[i-1]);
e=*p;
q=L.elem+L.Length-1;
for(++p;p<=q;++p)
*(p-1)=*p;
--L.Length;
}
int LocateElem(List L,A e)
{
int *p;
int i=1;
p=L.elem;
while(i<=L.Length&&*p++!=e)
++i;
if(i<=L.Length)
return i;
else
return 0;
}
void increment(List &L)
{
A *a;
a=new A[L.Listsize+L.incrementsize];
for(int i=0;i<L.Length;i++)
a[i]=L.elem[i];
delete[]L.elem;
L.elem=a;
L.Listsize+=L.incrementsize;
}
void ListInsert(List &L,int i,A e)
{
A *p,*q;
if(i<1||i>L.Length+1)
printf("i值不合法");
if(L.Length>=L.Listsize)
increment(L);
q=&(L.elem[i-1]);
for(p=&(L.elem[L.Length-1]);p>=q;--p)
*(p+1)=*p;
*q=e;
++L.Length;
}
void DestroyList(List &L)
{
delete[]L.elem;
L.Listsize=0;
L.Length=0;
}
void purge(List &La,List &Lb)
{
int e;
InitList(La);
int La_len=0;
while(!ListEmpty(Lb))
{
ListDelete(Lb,1,e);
if(!LocateElem(La,e))
ListInsert(La,++La_len,e);
}
DestroyList(Lb);
}
int main()
{
List a,b;
InitList(b);
int n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&b.elem[i]);
b.Length++;
}
purge(a,b);
for(i=0;i<a.Length;i++)
printf("%d ",a.elem[i]);
printf("\n") ;
return 0;
}
删除Lb重复的数,用La输出(顺序表)的更多相关文章
- sql语句查询表中重复字段以及显示字段重复条数
今天跟大家分享两条SQL语句,是关于查询某表中重复字段以及显示该字段的重复条数. 1.select * from 表名 where 列名 in (select 列名 from 表名 group by ...
- 顺序表的基本操作【c语言】【创建、插入、删除、输出】
作为数据结构初学者,上课时对一些知识点掌握得不是很透彻,所以利用课余时间通过微博平台总结所学知识,加深对知识的见解,记录学习历程便于后需要时参考. #include<stdio.h> #i ...
- 【线性表基础】顺序表和单链表的插入、删除等基本操作【Java版】
本文表述了线性表及其基本操作的代码[Java实现] 参考书籍 :<数据结构 --Java语言描述>/刘小晶 ,杜选主编 线性表需要的基本功能有:动态地增长或收缩:对线性表的任何数据元素进行 ...
- 删除顺序表L中下标为p(0<=p<=length-1)的元素,成功返回1,不成功返回0,并将删除元素的值赋给e
原创:转载请注明出处. [天勤2-2]删除顺序表L中下标为p(0<=p<=length-1)的元素,成功返回1,不成功返回0,并将删除元素的值赋给e 代码: //删除顺序表L中下标为p(0 ...
- 10,随机等概率的输出m个不重复的数
今天看到一段代码,可以从0.....n-1中随机等概率的输出m个不重复的数(n远远大于m).遂记录下来. 首先,产生随机数,不免要用到srand,rand函数.先简单介绍下两个函数. 1,void s ...
- 海量数据找相同数,高配词,不重复的数,判断一个数是否存在,查询串,不同电话号码的个数,中位数,按照query频度排序,topk
这类题目,首先需要确定可用内存的大小,然后确定数据的大小,由这两个参数就可以确定hash函数应该怎么设置才能保证每个文件的大小都不超过内存的大小,从而可以保证每个小的文件都能被一次性加载到内存中. 1 ...
- 删除MySQL重复数据
删除MySQL重复数据 项目背景 在最近做的一个linux性能采集项目中,发现线程的程序入库很慢,再仔细定位,发现数据库里面很多冗余数据.因为在采集中,对于同一台设备,同一个时间点应该只有一个数据,然 ...
- javascript 笔试题之删除数组重复元素
笔试时紧张没写出来,静下心后发现简单的要死. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" & ...
- 剑指offer:1.找出数组中重复的数(java版)
数组中重复的数:题目:找出数组中重复的数,题目描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内.数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任 ...
随机推荐
- 第五章 Spring3.0 、Hibernate3.3与Struts2的整合
5.1整合Spring与Hibernate 5.1.1使用MyEclipse加入Spring与Hibernate功能 使用MyEclipse工具主要是为了让工程拥有把数据表生成实体类与映射的功能.然后 ...
- nginx 通过rsyslog发日志 rsyslog服务器挂掉 日志丢失问题
nginx 配置: user nginx; worker_processes 1; syslog local5 nginx-zjzc01; rsyslog 服务器收到的消息: -rw-r--r-- 1 ...
- spring mvc 建立下拉框并进行验证demo
原文出处:http://howtodoinjava.com/spring/spring-mvc/spring-mvc-populate-and-validate-dropdown-example/ 该 ...
- Java 覆盖测试工具 :EclEmma
http://www.eclemma.org/installation.html#manual EclEmma 2.2.1 Java Code Coverage for Eclipse Overvie ...
- javascript中的继承方法
从Javascript面向对象编程(二):构造函数的继承这里,可以看到详细的说明. 我只是将其中的例子做成html文件,便于调试罢了. 1. 构造函数绑定 <html> <head& ...
- 在cmd中输入ls命令出现“ls不是内部或外部命令解决
今天在学习sass查看目录遇到cmd输入ls提示不是内部命令 解决方法: 新建一个ls.bat文件 内容为: @echo off dir
- HTML系列(九):表单
一.表单标签form 表单标签用于申明表单,定义采集数据的范围,即<form>包含的数据将被提交到数据库上,包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法. 表单能够包 ...
- VIM中格式化json
在vim输入以下命令就可以格式化:%!python -m json.tool可以在~/.vimrc增加快捷键map <F4><Esc>:%!python -m json.too ...
- 删除除了 id 号不同,其他都相同的学生冗余信息
删除除了 id 号不同,其他都相同的学生冗余信息2.学生表 如下:id 号 学号 姓名 课程编号 课程名称 分数1 2005001 张三 0001 数学 692 2005002 李四 0001 数学 ...
- vs2012C#编程环境设置智能提示
vs2012 智能提示和 显示行号的问题 路径为 菜单里 工具-->选项-->文本编辑器-->C# 如图所示 自动列出成员就是 vs里面的智能提示 行号就会显示所写代码的行 ...