- /*
- *定义:
- 顺序表是指线性表在顺序储存形式下构成的表
- 基本操作包括建立、插入、删除、查找等
- **/
- /*
- *@void setData(Object[] obj)-建表
- *@Object[] getData()-得到表的数据
- *@void setLength(int length)-设置表已有内容长度
- *@int getLength()-得到表长
- *@boolean insert(int index, Object obj)-插入数据
- *@boolean detele(int index)-删除数据
- *@int find(Object obj)-查找数据(找不到返回-1)
- *@boolean replace()-替换数据
- *
- *
- *以1为基准
- **/
- class LineList
- {
- private Object[] data;
- private int length;
- public LineList(){}
- public LineList(Object[] data)
- {
- this.data = data;
- length = data.length;
- }
- public void setData(Object[] data) {this.data = data;}
- public Object[] getData()
- {
- Object[] response = new Object[length];
- for(int i = 0; i < length; i++)
- response[i] = data[i];
- return response;
- }
- public void setLength(int length) {this.length = length;}
- public int getLength() {return length;}
- public boolean insert(int index, Object obj)
- {
- if(length >= data.length)
- {
- System.out.println("The table is overflow.");
- return false;
- }
- if(index < 1 || index > length)
- {
- System.out.println("The position is mistake: " + index);
- return false;
- }
- --index;
- for(int i = length-1; i >= index; i--)
- data[i+1] = data[i];
- data[index] = obj;
- length++;
- return true;
- }
- public boolean delete(int index)
- {
- if(length < 1)
- {
- System.out.println("The table is null");
- return false;
- }
- if(index < 1 || index > length)
- {
- System.out.println("The position is mistake: " + index);
- return false;
- }
- int len = length-1;
- for(int i = index-1; i < len; i++)
- data[i] = data[i+1];
- length--;
- return true;
- }
- public int find(Object obj)
- {
- for(int i = 0; i <= length; i++)
- if(data[i] == obj)
- return i+1;
- return -1;
- }
- public boolean replace(int index, Object obj)
- {
- if(index < 1 || index > length)
- {
- System.out.println("The position is mistak: " + index);
- return false;
- }
- data[index-1] = obj;
- return true;
- }
- }
- class Test
- {
- public static void main(String[] args)
- {
- Integer[] a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
- LineList lineList = new LineList(a);
- lineList.insert(0, 5);//已满
- lineList.delete(2);
- lineList.insert(5, 13);
- /*
- //全部删除,没有数据元素了还继续删
- Object[] response = lineList.getData();
- for(int i = 0; i < response.length; i++)
- lineList.delete(1);
- lineList.delete(1);
- */
- // lineList.delete(2);
- lineList.replace(10, 18);
- System.out.println("lineList's length: " + lineList.getLength());
- Object[] response = lineList.getData();
- System.out.println("find " + 5 + ": " + lineList.find(5));
- for(int i = 0; i < response.length; i++)
- System.out.print(response[i] + " ");
- }
- }
顺序表
最新推荐文章于 2023-10-30 20:39:30 发布