/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: 《线性表的类表示——数据结构JAVA》
* 作 者: 刘江波
* 完成日期: 2012 年 10 月 12 日
* 版 本 号: V2.0
* 对任务及求解方法的描述部分
* 问题描述:线性表的基本运算
* 程序头部的注释结束
*/
- <span style="font-size:14px;">public class LinearList {
- private int[] data; //线性表以数组形式存放
- private int MaxSize;//表空间的最大范围
- private int Last; //表当前结点个数,即表长
- //构造函数
- public LinearList(int MaxSize) {
- if(MaxSize>0){
- this.MaxSize = MaxSize;
- Last = 0;
- //创建表空间
- data = new int [MaxSize];
- }
- }
- //判断线性表是否为空
- public boolean ListEmpty(){
- return (Last <=0)?true:false;
- }
- //判断线性表是否已满
- public boolean ListFull(){
- return(Last >= MaxSize)?true:false;
- }
- //求线性表的长度
- public int ListLength(){
- return Last;
- }
- //求线性表中第i个结点的值
- public int GetElem(int i){
- //若存在,返回结点,否则,返回null;
- return(i<0||i>Last)?null:data[i];
- }
- //查找线性表中值为x的结点
- public int LocateElem(int x){
- //查找表中值为x的结点,找到则返回该结点的序号;否则返回-1;
- //若表中值为x的结点有多个,找到的是最前面的一个;
- for(int i=0;i<Last;i++){
- if(data[i] == x)return i;
- }
- return -1;
- }
- //在线性表中第i个位置插入值为x的结点
- public boolean InsertElem(int x,int i){
- //在表中第i个位置插入值为x的结点
- //若插入成功,则返回true,否则返回false
- //插入位置不合理,插入失败
- if(i<0||i>Last||Last == MaxSize)
- return false;
- else
- {
- //后移
- for(int j = Last;j>i;j--)
- data[j] = data[j-1];
- //插入
- data[i] = x;
- //表长增一
- Last++;
- return true;
- }
- }
- //删除线性表的第i个结点
- public boolean DeleteElem(int i){
- //删除表中第i个结点,若成功,返回true;否则返回false;
- //第i个结点不存在,删除失败;
- if(i<0||i>=Last||Last == 0)
- return false;
- else
- {
- //前移
- for(int j=i;j<Last-1;j++)
- data[j] = data[j+1];
- //表长减1
- Last--;
- return true;
- }
- }
- public void display(){
- System.out.println("当前链表长度:"+ ListLength());
- for(int i=0;i<Last;i++)
- {
- System.out.println("第"+i+"结点为:"+data[i]);
- }
- }
- }</span>