数据的插入与删除

数据的插入与删除

描述:在一组数据(数目不超过10000)中,插入新数,删除所有与给定数相等的数据。

输入:

第一行是未排序的一组非负整数,数目不超过10000。以-1作为结束标志。

第二行是要插入的数。

第三行是要删除的数。

输出:

第一行输出自小到大排好序的数。如果没有元素,输出“No elements.”(不包括引号)。

第二行输出插入后自小到大排好序的数,以“,”隔开。

第三行输出删除后自小到大排好序的数,以“,”隔开。如果没有元素,输出“No elements.”(不包括引号)。

样例输入

100 98 79 63 44 99 -1
88
79

样例输出

44,63,79,98,99,100
44,63,79,88,98,99,100
44,63,88,98,99,100

自己测试都通过了 系统一直提示Output Limit Exceed,不知道为何,郁闷!!!!!!

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int* Select_Sort(int* a, int num);
void Swap(int* a, int* b);

int main()
{
	int i = 0, j,count = 0;
	int length;
	int Insert, Delet;
	int number_temp[10000];
	int number[10000];
	int Insert_number[10001];
	int Delet_number[10001];
	next:
	while (scanf("%d", &number_temp[count]) != EOF){
		if (number_temp[count] == -1) break;
		number[count] = number_temp[count];
		count++;
	}
	length = count;
	count = 0;
	scanf("%d", &Insert);
	scanf("%d", &Delet);
	Select_Sort(number,length);
	//打印排序后的输出
	if (length == 0){
		printf("No elements.");
	}
	else{
		for (j = 0; j < length; j++){
			printf("%d", number[j]);
			if ( j < length - 1) printf(",");
		}
	}
	printf("\n");
	for (i = 0; i < length; i++){
		Insert_number[i] = number[i];
	}
	Insert_number[length] = Insert;
	Select_Sort(Insert_number, length + 1);
	//打印插入后的数据
	for (j = 0; j < length+1; j++){
		printf("%d", Insert_number[j]);
		if (j < length) printf(",");
	}
	printf("\n");
    //开始删除操作
	int Delet_flag = 0;
	for (i = 0; i < length+1; i++){
		if (Insert_number[i] != Delet){
			Delet_number[Delet_flag] = Insert_number[i];
			Delet_flag++;
		}
	}
	if (Delet_flag == 0) printf("No elements.");
	else{
		for (i = 0; i < Delet_flag; i++){
			printf("%d", Delet_number[i]);
			if (i < Delet_flag - 1) printf(",");
		}
	}
	printf("\n");
	goto next;
}

int* Select_Sort( int *a, int num)
{
	int i,j;
	for (j = 0; j < num; j++){
		for (i = j; i < num; i++){
			if (a[i] < a[j]) //选择排序,每次遍历都把最小的放到最前面
				Swap(&a[i],&a[j]);
		}
	}
	return a;
}

void Swap(int* a, int* b)
{
	int temp;
	temp = *a;
	*a = *b;
	*b = temp;
}

  

时间: 2024-10-29 10:46:42

数据的插入与删除的相关文章

SQL 数据插入、删除 大数据

--测试表 CREATE TABLE [dbo].[Employee] ( [EmployeeNo] INT PRIMARY KEY, [EmployeeName] [nvarchar](50) NULL, [CreateUser] [nvarchar](50) NULL, [CreateDatetime] [datetime] NULL );--1.循环插入 SET STATISTICS TIME ON; DECLARE @Index INT = 1; DECLARE @Timer DATET

FireDAC 下的 Sqlite [5] - 数据的插入、更新、删除

先在空白窗体上添加: TFDConnection.TFDPhysSQLiteDriverLink.TFDGUIxWaitCursor.TFDQuery.TDataSource.TDBGrid(并在设计时关联好).你也可以复制下面文本框中的内容, 然后直接往窗体上贴, 以快速完成以上的添加过程:object DBGrid1: TDBGrid Left = 16 Top = 88 Width = 361 Height = 329 DataSource = DataSource1 TabOrder =

(转) java实现hbase表创建、数据插入、删除表

近日查看了相关资料后,梳理了一下用java实现hbase的表创建.数据插入.删除表,代码如下: 1.需要的jar包: commons-codec-1.4.jar commons-logging-1.0.4.jar hadoop-0.20.2-core.jar hbase-0.20.6.jar log4j-1.2.15.jar zookeeper-3.2.2.jar 2.代码. 1 package org.myhbase; 2 3 import java.io.IOException; 4 5 i

MySQL数据库实验:任务二 表数据的插入、修改及删除

目录 任务二 表数据的插入.修改及删除 一.利用界面工具插入数据 二.数据更新 (一)利用MySQL命令行窗口更新数据 (二)利用Navicat for MySQL客户端工具更新数据 三.数据库的备份与还原 1.备份转储数据库 2.还原数据库 任务二 表数据的插入.修改及删除 @ 班级 姓名 软件工程16-9班 洪燕妮 [实训目的与要求] 1.利用MySQL命令行窗口进行增.删.改数据操作: 2.利用界面工具进行增.删.改数据操作. [实训原理] MySQL的增.删.改数据操作命令. [实训步骤

最小堆的建立 插入 与删除

堆是完全二叉树,完全二叉树最大的特点就是 把数据储存在数组里 通过父子结点的关系来做  不用实际建树  parent=leftchild/2: leftchild=2*parent  右就加1这儿指的是序号关系,储存的时候注意是利用树的逻辑图 从上到下 从左到右编号12345..... 建堆:实际是把数据先放入数组(注意下标从1开始),对应逻辑图,写调整代码,我的基本思路是从数组末尾开始,对应元素与其父节点比较,满足条件就换值,并且对被换的调用调整函数(要单独写个调整函数)因为被换的一个是可能不

重温数据结构:二叉排序树的查找、插入、删除

读完本文你将了解到: 什么是二叉排序树 Binary Sort Tree BST 二叉排序树的关键操作 查找 插入 删除 运行代码测试 一道面试题 总结 Thanks 我们知道,二分查找可以缩短查找的时间,但是有个要求就是 查找的数据必须是有序的.每次查找.操作时都要维护一个有序的数据集,于是有了二叉排序树这个概念. 上篇文章 我们介绍了 二叉树 的概念,二叉树有左右子树之分,想必在区分左右子树时有一定的规则. 现在我们来介绍二叉树的一种特殊形式 - 二叉排序树,了解它的区分策略及常用操作. 什

数据结构Java实现03----单向链表的插入和删除

数据结构Java实现03----单向链表的插入和删除 文本主要内容: 链表结构 单链表代码实现 单链表的效率分析 一.链表结构:            概念: 链式存储结构是基于指针实现的.我们把一个数据元素和一个指针称为结点.   数据域:存数数据元素信息的域. 指针域:存储直接后继位置的域. 链式存储结构是用指针把相互直接关联的结点(即直接前驱结点或直接后继结点)链接起来.链式存储结构的线性表称为链表. 链表类型: 根据链表的构造方式的不同可以分为: 单向链表 单向循环链表 双向循环链表 二

Delphi ADOQuery连接数据库的查询、插入、删除、修改

//查询记录 procedure TForm1.Button1Click(Sender: TObject); begin ADOQuery.Close; ADOQuery.SQL.Clear; ADOQuery.SQL.Add('select * from YourTABLE where 查询条件'); ADOQuery.Open; //插入记录 procedure TForm1.Button2Click(Sender: TObject); begin ADOQuery.Close; ADOQu

二叉排序树(BST):创建、查找、插入与删除

删除结点的相关操作(左右子树均为非空的删除结点的方法): 算法分析: 下面以实例来说明二叉排序树的创建.查找.插入和删除等相关操作: 如输入关键字序列(45,24,37,12,54,93),然后对其进行相应的操作,程序如下: #include <iostream> #include <stdio.h> #include <stdlib.h> using namespace std; typedef struct BiTNode { int value; struct B