已知长度为n的线性表采用顺序结构,写一算法删除该线性表中所有值为item的元素
/**
* @author:(LiberHome)
* @date:Created in 2019/2/27 23:34
* @description:
* @version:$
*/
/*已知长度为n的线性表采用顺序结构,写一算法删除该线性表中所有值为item的元素*/
public class page06 {
public static void main(String[] args) {
String[] arr = {"item", "item", "Hello", "item", " sweet ", "item", "grief"};
delItem(arr);
show(arr);
} private static void show(String[] arr) {
for (int i = 0; i < arr.length; i++) {
if (!"item".equals(arr[i])){
System.out.print(arr[i] + " ");
}
}
} /*但凡是遇到一个item就拼命往后找不为item的值,直到找到并且与之交换,树立flag,或者超出界限退出*/
/*然后输出元素到编号flag*/
private static void delItem(String[] arrs) {
String temp;
int i = 0;
while (i < arrs.length) {
/*如果不为item*/
while (!"item".equals(arrs[i]) && (i + 1) < arrs.length) {
i++;
}
/*超出界限就返回*/
if ((i + 1) >= arrs.length) {
return;
}
/*走到这步说明在界限内遇到了item*/
/*立一个flag*/
int flag = i;
while ("item".equals(arrs[i]) && (i + 1) < arrs.length) {
i++;
}
if ((i) >= arrs.length) {
return;
}
/*走到这一步说明已经找到了非item元素*/
/*交换*/
temp = arrs[i];
arrs[i] = arrs[flag];
arrs[flag] = temp;
i = flag + 1;/*回到flag后一个元素,开始新的一轮*/
flag++;
}
}
}
已知长度为n的线性表采用顺序结构,写一算法删除该线性表中所有值为item的元素的更多相关文章
- 表的顺序结构---重写Arraylist类
重写ArrayList类,为防止冲突,重写为MyArrayList,未继承Iterable类. public class MyArrayList<AnyType>{ int N=10; A ...
- MySQL外键及级联删除 && 表的存储引擎与创建索引 && 删除数据库和表
Messages表: mysql>create table Messages( ->message_id int auto_increment primary key, ->user ...
- 已知一个数组a[N]来构造数组b[N]的有趣算法题
给定一个数组a[N],我们希望构造数组b[N],其中b[i]=a[0]*a[1]*...*a[N-1]/a[i].在构造过程要求满足:1.不使用除法:2.O(1)空间复杂度和O(n)时间复杂度:3.除 ...
- 删除线性表中所有值为x的元素
时间复杂度O(n),空间复杂度O(1). 简单的问题两种不同的思路. 代码: #include <stdio.h> #define MAX 100 struct sqlist{ int d ...
- 2019-02-03 线性表的顺序储存结构C语言实现
#include<cstdio> #define MAXSIZE 20 typedef int Elemtype; //Elemtype类型根据实际情况而定,这里取int typedef ...
- iconv简介(1、字符串|文件字符转换:iconv用于将一种已知的字符集文件转换成另一种已知的字符集文件)(2、编程语言函数功能的相似性:iconv不仅再php中有用,而且c语言中也有用,还有linux等)
iconv简介(1.字符串|文件字符转换:iconv用于将一种已知的字符集文件转换成另一种已知的字符集文件)(2.编程语言函数功能的相似性:iconv不仅再php中有用,而且c语言中也有用,还有lin ...
- SDUT OJ 顺序表应用2:多余元素删除之建表算法
顺序表应用2:多余元素删除之建表算法 Time Limit: 3 ms Memory Limit: 600 KiB Submit Statistic Discuss Problem Descripti ...
- c语言进阶12-线性表之顺序表
一. 线性表的定义 为什么要学习线性表呢? 因为我们日常生活中存在种数据关系,计算机程序是为了解决日常生活的数据关系,因此我们要学习线性表. 线性表是什么呢? 线性表是由n个元素组成的有限序列. 需 ...
- 顺序表应用2:多余元素删除之建表算法(SDUT 3325)
题解: 每次询问一遍,如果已经存在就不用插入表中了. #include <stdio.h> #include <stdlib.h> #include <string.h& ...
随机推荐
- JAVA使用Logback发送日志到控制台、文件、ELK的最简单用法
一.简述 本文讲JAVA使用Logback发送日志到控制台.文件.ELK的最简单用法. 二.教程 1.新建pom.xml项目引入下列依赖: <dependencies> <!--Be ...
- 【Storm】Storm实战之频繁二项集挖掘(附源码)
一.前言 针对大叔据实时处理的入门,除了使用WordCount示例之外,还需要相对更深入点的示例来理解Storm,因此,本篇博文利用Storm实现了频繁项集挖掘的案例,以方便更好的入门Storm. 二 ...
- EAS开发环境搭建.
一:EAS开发环境安装 解压EAS服务器安装包到E盘即可,内含BOS开发环境. 二:EAS客户端安装 EAS8.0.exe安装到D盘,这是客户端. 三:远程数据库 使用远程运维系统,登陆数据库.
- 市场风险~VaR的概述
1.概念理解 VaR的含义:Value at Risk 按字面的解释就是"处于风险状态的价值",可译为受险价值.在险价值.风险价值等. 通常解释为:VaR是在一定置信水平和一定持有 ...
- 基于springboot整合的rabbitmq
技术:springboot1.5.2 + maven3.0.5 + rabbitmq3.7.13 + jdk1.8 概述 RabbitMQ是对高级消息队列协议(Advanced Message Q ...
- php : 开发记录(2017-03-10)
0.后台 循环N*10000次操作的简单处理 后台需要循环做N*10000次级别的工作时候,比如,发送邮件,推送通知.可以先把所有数据导入数据表(数据库操作所需的时间1~2秒),然后前台循环发送请求, ...
- php5.6.11编译安装报错configure: error: Don't know how to define struct flock on this system
centos 6.8 32位系统下,安装php.5.6.11是出现这个错误 解决办法: 1 2 3 4 vim /etc/ld.so.conf.d/local.conf # 编辑库文件 /us ...
- [windows+cocos2dx]文本类
文字也是游戏最重要的元素之中的一个,以下就看看使用动态字体和静态字体库怎样创建文字.使用动态字体库创建的文字能够包括经常使用的不论什么字符,一般假设用户要输入名字,这就最好用动态字体库.由于你不知道用 ...
- Android 开发笔记
11.android使用全局变量 定义Data类继承Application 在manifest.xml中声明 http://blog.csdn.net/feiyangxiaomi/article/de ...
- crawler_exa1
编辑中... #! /usr/bin/env python # -*- coding:utf-8 -*- # Author: Tdcqma ''' 网页爬虫,版本 2017-09-20 21:16 ' ...