《线性表的类表示——数据结构JAVA》

/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:    《线性表的类表示——数据结构JAVA》                         
* 作    者:       刘江波                      
* 完成日期:    2012     年    10   月   12     日
* 版 本 号:    V2.0     

* 对任务及求解方法的描述部分
* 问题描述:线性表的基本运算 
* 程序头部的注释结束
*/

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]);
		}
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值