已知长度为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& ...
随机推荐
- Get the client's IP address in socket.io
From: https://www.wentong.org/codex/question-2018081564702.html When using socket.IO in a Node.js se ...
- CVPR论文《100+ Times Faster Weighted Median Filter (WMF)》的实现和解析(附源代码)。
四年前第一次看到<100+ Times FasterWeighted Median Filter (WMF)>一文时,因为他附带了源代码,而且还是CVPR论文,因此,当时也对代码进行了一定 ...
- C# System.Collections.Generic.Dictionary
using System; using System.Collections.Generic; public class Example { public static void Main() { / ...
- [转] 阿里研究员谷朴:API 设计最佳实践的思考
API是软件系统的核心,而软件系统的复杂度Complexity是大规模软件系统能否成功最重要的因素.但复杂度Complexity并非某一个单独的问题能完全败坏的,而是在系统设计尤其是API设计层面很多 ...
- zabbix之微信告警(python版):微信个人报警,微信企业号告警脚本
微信个人告警脚本 微信个人告警:使用个人微信,发送到微信群组,微信好友 两个脚本执行: 1)能连接网络2)先执行server.py,扫描登录微信,登录之后没有报错,打开新终端查看端口是否起来了3)在z ...
- Atitit 关于共享经济之共享男女朋友的创业计划
Atitit 关于共享经济之共享男女朋友的创业计划 1. 共享经济的历史与趋势 1 1.1. 共享经济三大特征=产能过剩+共享平台+人人参与. 1 1.2. 共享经济是个大趋势,使用权渐渐的取代所有权 ...
- Ajax 请求头中常见content-type
四种常见的 POST 提交数据方式 HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范.规范把 HTTP 请求分为三个部分:状态行.请求头.消息主体.协议规定 POST ...
- ffmpeg中AVBuffer的实现分析
[时间:2017-10] [状态:Open] [关键词:ffmpeg,avutil,avbuffer, 引用计数] 0 引言 AVBuffer是ffmpeg提供的基于引用计数的智能指针的一个实现版本. ...
- 删除maven仓库中的LastUpdated文件
转自:http://www.oschina.net/code/snippet_151849_49131 @echo off rem create by sunhao(sunhao.java@gmail ...
- php utf8编码字符串的截取
function sub_str($str, $length = 0, $append = true) { $str = trim($str); $strlength = strlen($str); ...