博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构(一)用类封装数组实现数据结构
阅读量:7049 次
发布时间:2019-06-28

本文共 3415 字,大约阅读时间需要 11 分钟。

1 /**  2 用类封装数组实现数据结构  3 一个数据结构必须具有以下基本功能:  4   5   ①、如何插入一条新的数据项  6   7   ②、如何寻找某一特定的数据项  8   9   ③、如何删除某一特定的数据项 10  11   ④、如何迭代的访问各个数据项,以便进行显示或其他操作 12 */ 13  14 public class MyArray{ 15     //定义一个数组 16     private int[] intArray; 17     //定义数组的实际有效长度 18     private int elems; 19     //定义数组的最大长度 20     private int length; 21  22     //默认构造一个长度为50的数组 23     public MyArray() { 24         elems = 0; 25         length = 50; 26         intArray = new int[length]; 27     } 28  29     //构造函数,初始化一个长度为length的数组 30     public MyArray(int length) { 31         elems = 0; 32         this.length = length; 33         intArray = new int[length]; 34     } 35  36     //获取数组的有效长度 37     public int getSize() { 38         return elems; 39     } 40  41     /** 42     遍历显示元素 43     */ 44     public void display() { 45         for (int i = 0 ; i < elems ; i++ ) { 46             System.out.print(intArray[i]+" "); 47         } 48         System.out.println(); 49     } 50  51     /** 52     添加元素,假设使用者不会添加重复元素,如果有重复元素后面也会受到影响 53     */ 54     public boolean add(int value) { 55      if(elems == length) 56          return false; 57      else { 58         intArray[elems] = value; 59         elems++; 60      } 61      return true; 62     } 63  64     /** 65     根据下标获取元素,查找下标值在数组下标有效范围内,返回下标表示的元素,超过 66     有效值,提示访问下标越界 67     */ 68  69     public int get(int i) { 70         if(i < 0 || i >= elems) 71             System.out.println("访问下标越界"); 72         return intArray[i]; 73     } 74  75     /** 76     查找元素 77     如果查找的元素存在则返回下标值,不存在就返回-1 78     */ 79     public int find(int searchValue) { 80         int i; 81         for(i=0; i < elems; i++) { 82             if(intArray[i] == searchValue) { 83                 return i; 84             } 85          86         } 87         return -1; 88     } 89     /** 90     删除元素 91     如果要删除的值不存在,直接返回false;否则返回true,删除成功 92     */ 93     public boolean delete(int value) { 94         int k = find(value); 95         if(k == -1) { 96             return false; 97         } else { 98             if (k == elems -1) { 99                 elems--;100             } else {101                 for(int i = k; i < elems-1; i++) {102                     intArray[i] = intArray[i+1];103                 }104                 elems--;105             }106         }107         return true;108     }109 110     /**111     *    修改数据,修改成功返回true,失败返回false112     * @param oldValue 原值113     * @param newValue 新值114     */115     public boolean modify(int oldValue,int newValue) {116         int i = find(oldValue);117         if(i == -1) {118             System.out.println("需要修改的数据不存在");119             return false;120         } else {121             intArray[i] = newValue;122             return true;123         }124     }125 }
1 public class MyArrayTest{ 2     public static void main(String[] args) { 3         //创建自定义封装数组结构,数组大小为4 4         MyArray array = new MyArray(4); 5         //添加4个元素分别是1,2,3,4 6         array.add(1); 7         array.add(2); 8         array.add(3); 9         array.add(4);10         //显示数组元素11         array.display();12         //根据下标为0的元素13         int i = array.get(0);14         System.out.println(i);15         //删除4的元素16         array.delete(4);17         //将元素3修改为3318         array.modify(3, 33);19         array.display();20         //删除不存在的元素21         System.out.println(array.delete(100));22     }23 }

 

转载于:https://www.cnblogs.com/blogforvi/p/9444208.html

你可能感兴趣的文章
关于QT_Creator不能在线调试问题
查看>>
abstract class VS interface[转]
查看>>
Angular 学习笔记——ng-repeat&filter
查看>>
投票系统如何如何防刷票?
查看>>
20145234黄斐《Java程序设计》第六周学习总结
查看>>
linux读文件命令绕过姿势
查看>>
hdu 2044(递推)
查看>>
SpringCloud微服务实战:一、Eureka注册中心服务端
查看>>
数据库集群原理
查看>>
js正则表达式
查看>>
MFC读写配置文件
查看>>
ps应用小技巧
查看>>
Yii-数据模型- rules类验证器方法详解
查看>>
css重置
查看>>
重建索引
查看>>
J2EE 项目增加 webservice
查看>>
yum 安装
查看>>
linux sar 命令详解
查看>>
libvirt学习
查看>>
码农心思@10/12/2013
查看>>