文档章节

数据结构与算法4

沉迷于编程的小菜菜
 沉迷于编程的小菜菜
发布于 07/20 00:08
字数 525
阅读 9
收藏 1

 在此程序中,HighArray类中的find()方法用数据项的值作为参数传递,它的返回值决定是否找到此数据项。

insert()方法向数组下一个空位置放置一个新的数据项。一个名为nElems的字段跟踪记录着数组中的数据项个数。

根据以参数形式传入的关键字,delete()方法查找相应的数据项。当他找到该数据项后,便将该所有后面的数据项前移,从而将此数据项覆盖,达到删除的目的。

在这个程序中,类用户HighArrayAPP不用考虑数组的下标,因为结构被隐藏,所以也不用考虑HighArray中使用何种数据结构来存储数据。

main方法非常简洁。

class HighArray {
 private long[] a;
 private int nElems;
 
 // constructor
 public HighArray(int max) {
  a = new long[max];
  nElems = 0;
 }
 
 // find specified value
 public boolean find(long searchKey) {
  int j;
  for(j=0; j<nElems; j++) {
   if(a[j] == searchKey) {
    break;
   }
  }
     if(j == nElems) {
      return false;
     }
     else {
      return true;
     }
 }  // end find()
 
 // put element into array
 public void insert(long value) {
  a[nElems] = value;
  nElems++;
 }
 
 // delete specified value
 public boolean delete(long value) {
  int j;
  for(j=0; j<nElems; j++) {    // look for it
   if(value == a[j]) {
    break;
   }
  }
  if(j == nElems) {
   return false;            // can't find it
  }
  else {
   for(int k=j; k<nElems; k++) {
    a[k] = a[k+1];         // move higher ones down
   }
   nElems--;
   return true;
  }
 }  // end delete()
 
 // display items
 public void display() {
  for(int j=0; j<nElems; j++) {
   System.out.print(a[j] + " ");
  }
  System.out.println("");
 } // end display()

} // end class HighArray

class HighArrayApp {
 public static void main(String[] args) {
  int maxSize = 100;
  HighArray arr;
  arr = new HighArray(maxSize);
  
  // insert 10 items
  arr.insert(77);
  arr.insert(99);
  arr.insert(44);
  arr.insert(55);
  arr.insert(22);
  arr.insert(88);
  arr.insert(11);
  arr.insert(00);
  arr.insert(66);
  arr.insert(33);
  
  // display items
  arr.display();
  
  // search for item 35
  int searchKey = 35;
  if(arr.find(searchKey)) {
   System.out.println("Found " + searchKey);
  }
  else {
   System.out.println("Can't find " + searchKey);
  }
  
  // delete 3 items
  arr.delete(00);
  arr.delete(55);
  arr.delete(99);
  
  // display items
  arr.display();
  
 }  // end main()
} // end class HighArrayApp
77 99 44 55 22 88 11 0 66 33 
Can't find 35
77 44 22 88 11 66 33 

 

© 著作权归作者所有

共有 人打赏支持
沉迷于编程的小菜菜
粉丝 1
博文 45
码字总数 19015
作品 0
杭州
私信 提问
加载中

评论(1)

影夜Linux
影夜Linux
把我前面的文也点点赞:bowtie:
JAVA数据结构的个人见解之绪论

JAVA数据结构的个人见解之绪论 概念 一般来说用计算机解决问题总是围绕以下三个主要步骤: (1) 抽象出所求解问题中需要处理的数据对象的逻辑模型。(逻辑结构) (2) 根据所求解问题需要完...

狂奔啦蜗牛
2012/08/23
0
0
利用线性表的顺序结构求集合的并、交、差、补(C语言实现)

昨天用数据结构中的线性表的顺序结构实现了关于集合的并、交、差、补的集合运算,做个记录,希望也能帮助到其他人。 一、算法分析   (1)用数组A,B,C,E表示集合。假定A={1,3,4,5,6...

Tim_JX
2014/03/24
0
0
《数据结构与算法》之认识(1)

前面的话: 写程序的大家都知道数据结构和算法的重要性,但是恰恰数据结构和算法学起来比较困难,原因如下: 1:本来就有点难 2:大学老师老师不一定能讲清楚 3:大学老师不愿意讲,因为工资...

lixiyuan
2014/04/12
0
1
【译】Swift算法俱乐部-什么是算法和数据结构?

本文是对 Swift Algorithm Club 翻译的一篇文章。 Swift Algorithm Club是 raywenderlich.com网站出品的用Swift实现算法和数据结构的开源项目,目前在GitHub上有18000+⭐️,我初略统计了一下...

Andy_Ron
09/16
0
0
数据结构基本概念 - 学习笔记

数据结构基本概念 1 数据:数据是用来描述现实世界的数字、字符、图像、声音,以及能够输入到计算机中并能被计算机处理的符号集合 2 数据元素:数据元素是数据的基本单位,在计算机中通常作为...

wqli
2012/09/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
今天
11
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
今天
17
0
IC-CAD Methodology知识图谱

CAD (Computer Aided Design),计算机辅助设计,指利用计算机及其图形设备帮助设计人员进行设计工作,这个定义同样可以用来近似描述IC公司CAD工程师这个岗位的工作。 早期IC公司的CAD岗位最初...

李艳青1987
今天
17
0
CompletableFuture get方法一直阻塞或抛出TimeoutException

问题描述 最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响...

xiaolyuh
今天
8
0
dubbo 搭建与使用

官网:http://dubbo.apache.org/en-us/ 一,安装监控中心(可以不安装) admin管理控制台,monitor监控中心 下载 bubbo ops 这个是新版的,需要node.js环境,我没有就用老版的了...

小兵胖胖
今天
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部