线性表(存储结构数组)--Java 实现

 1 /*线性表的数组实现
 2  *特点:插入删除慢需要平均移动一半的数据,查找较快
 3  *注意:有重复和无重复的数据对应的操作会有些不同
 4  *注意数组一旦创建其大小就固定了
 5  *Java集合长度可变是由于创建新的数组将原来旧的数据复制过去--这些附加功能牺牲了效率
 6  *主要实现以下几个功能
 7  *1.线性表查找
 8  *2.线性表删除
 9  *3.线性表的插入存储一个元素(无序数组插入)
10  * */
11 public class MyArray {
12     
13     private long[] arr;
14     private int items;//记录数组元素个数--关键
15     
16     public MyArray(int max) {//max记录数组长度
17         this.arr = new long[max];
18         items = 0;
19     }
20     
21     public int size(){
22         return items;
23     }
24     //按照值查找
25     public boolean find(long searchKey){
26         int index = 0;
27         for(int i = 0; i < items; i++){
28             if(searchKey == arr[i]){
29                 index = i;
30                 break;
31             }
32         }
33         if(index == items){
34             return false;
35         }
36         else{
37             return true;
38         }
39     }
40     
41     //存储元素
42     public void insert(long key){
43         arr[items] = key;
44         items++;
45     }
46     
47     //删除一个元素--按照值
48     public boolean delete(long key){
49         //遍历数组--先找到元素
50         int i;
51         for(i = 0; i < items; i++){
52             if(key == arr[i]){
53                 break;
54             }
55         }
56         if(i== items){
57             return false;
58         }
59         else{
60             //向左边移动操作
61             for(int k = i;k < items; k++){
62                 arr[k] = arr[k+1];
63             }
64             items--;
65             return true;
66         }
67     }
68     
69     public void displayArray(){
70         for(int i = 0;i < items;i++){
71             System.out.print(arr[i] + " ");
72         }
73         System.out.println();
74     }
75 }

 

posted @ 2017-10-17 11:03  sun1993  阅读(570)  评论(0编辑  收藏  举报