java数据结构和算法------线性表(顺序表结构)

 1 package iYou.neugle.list;
 2 
 3 public class MySeqList<T> {
 4     private int initMaxSize = 10;
 5     private T[] list;
 6     private int listLen = 0;
 7 
 8     public MySeqList() {
 9         this.Init();
10     }
11 
12     public MySeqList(int size) {
13         this.initMaxSize = size;
14         this.Init();
15     }
16 
17     public void Init() {
18         this.list = (T[]) new Object[this.initMaxSize];
19     }
20 
21     // 顺序表添加操作
22     public boolean Add(T data) {
23         if (this.listLen < this.initMaxSize) {
24             this.list[listLen] = data;
25             this.listLen++;
26             System.out.println("插入成功");
27             return true;
28         }
29         System.out.println("顺序表数据已满");
30         return false;
31     }
32 
33     // 顺序表插入操作
34     public boolean Insert(int p, T data) {
35         if (p < 0 || p > this.initMaxSize - 1) {
36             System.out.println("插入数据位置非法");
37             return false;
38         }
39         if (this.listLen == this.initMaxSize) {
40             System.out.println("顺序表数据已满");
41             return false;
42         }
43         // 容错处理
44         if (p > this.listLen) {
45             p = this.listLen;
46             this.list[p] = data;
47         } else {
48             for (int i = this.listLen - 1; i >= p; i--) {
49                 this.list[i + 1] = this.list[i];
50             }
51             this.list[p] = data;
52         }
53         this.listLen++;
54         System.out.println("插入成功");
55         return true;
56     }
57 
58     // 顺序表删除操作
59     public boolean Delete(int p) {
60         if (p < 0 || p > this.initMaxSize - 1) {
61             System.out.println("删除数据位置非法");
62             return false;
63         }
64         for (int i = p; i <= this.listLen - 1; i++) {
65             this.list[i] = this.list[i + 1];
66         }
67         this.listLen--;
68         System.out.println("删除成功");
69         return true;
70     }
71 
72     // 顺序表按下标查找
73     public T Get(int p) {
74         if (p < 0 || p > this.initMaxSize - 1) {
75             System.out.println("查找数据不存在");
76             return null;
77         }
78 
79         System.out.println("查找成功,数据为:" + this.list[p]);
80         return this.list[p];
81     }
82 
83     // 顺序表大小
84     public int SizeOf() {
85         return this.listLen;
86     }
87 
88     public void Print() {
89         System.out.print("[");
90         for (int i = 0; i < this.list.length; i++) {
91             System.out.print(this.list[i]);
92             if (i < this.list.length - 1) {
93                 System.out.print(",");
94             }
95         }
96         System.out.println("]");
97     }
98 }

 

转载于:https://www.cnblogs.com/niuxiaoha/p/4629437.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值