java的线性表实现

java的线性表实现

刚开始学习数据结构实现,自己做了一个简单的线性表实现,还有很多不足,希望多多指教

 

 1 /**
 2  * 线性表的基本操作:
 3  * 1.void add(int data) 在末尾增添一个数
 4  * 2.void add(int index,int data)  在指定位置增添一个数
 5  * 3.void delete(int index) 删除指定位置的元素
 6  * 4.void deleteAll() 清空线性表元素
 7  * 5.int find(int data)  找到某个数据
 8  * 6.void update(int index,int data) 在指定位置修改元素值
 9  */
10 public class Node {
11         int maxsize; //数组的最大长度
12         int a[];
13         int length; //数组的当前长度
14         public Node(int b) {  //构造函数,用于对数组的初始化和给出数组的最大长度
15             this.length=0;
16             this.a=new int[b];
17             this.maxsize=a.length;
18         }
19         
20         public void add(int data) {   
21             if(length<maxsize) {
22                 a[length]=data;
23                 length++;
24             }
25             else {
26                 System.out.println("数组空间已满,无法添加元素。");
27             }
28         }
29         
30         public void add(int index,int data) {
31             if(length<maxsize) {
32                 int i=length;
33                 while(i!=index) {
34                     a[i]=a[i-1];
35                     i--;
36                 }
37                 a[index]=data;
38                 length++;
39             }
40             else {
41                 System.out.println("数组空间已满,无法添加元素。");
42             }
43         }
44         
45         public void delete(int index) { //java中数组未初始化时有默认值0
46             if(length!=0) {
47                 int i=index;
48                 while(i<length) {
49                     a[i]=a[i+1];
50                 }
51                 length--;
52             }
53             else {
54                 System.out.println("没有元素可以供删除");
55             }
56         }
57         
58         
59         public void deleteAll() { 
60             for(int j=length-1;j>=0;--j) {
61                 a[j]=0;
62             }
63             length=0;
64         }
65         
66         
67         public int find(int data) {
68             
69             /*
70              * 暂不详更高效查找的方法
71              */
72             for(int j=0;j<=length-1;j++) {
73                 if(a[j]==data) {
74                     return j;
75                 }
76             }
77             return -1;
78         }
79         
80     public void update(int index,int data) {
81         if(index<=length-1&&index>=0) {
82             a[index]=data;
83         }
84         else {
85             System.out.println("数组越界");
86         }
87     }
88     
89         
90 }

 

转载于:https://www.cnblogs.com/icxl/p/10648590.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值