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

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

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

[java]  view plain copy print ?
  1. <span style="font-size:14px;">public class LinearList {  
  2.     private int[] data; //线性表以数组形式存放  
  3.     private int MaxSize;//表空间的最大范围  
  4.     private int Last;   //表当前结点个数,即表长  
  5.     //构造函数  
  6.     public LinearList(int MaxSize) {  
  7.         if(MaxSize>0){  
  8.             this.MaxSize = MaxSize;  
  9.             Last = 0;  
  10.             //创建表空间  
  11.             data = new int [MaxSize];  
  12.         }  
  13.     }  
  14.     //判断线性表是否为空  
  15.     public boolean ListEmpty(){  
  16.         return (Last <=0)?true:false;  
  17.     }  
  18.     //判断线性表是否已满  
  19.     public boolean ListFull(){  
  20.         return(Last >= MaxSize)?true:false;  
  21.     }  
  22.     //求线性表的长度  
  23.     public int ListLength(){  
  24.         return Last;  
  25.     }  
  26.     //求线性表中第i个结点的值  
  27.     public int GetElem(int i){  
  28.         //若存在,返回结点,否则,返回null;  
  29.         return(i<0||i>Last)?null:data[i];  
  30.     }  
  31.     //查找线性表中值为x的结点  
  32.     public int LocateElem(int x){  
  33.         //查找表中值为x的结点,找到则返回该结点的序号;否则返回-1;  
  34.         //若表中值为x的结点有多个,找到的是最前面的一个;  
  35.         for(int i=0;i<Last;i++){  
  36.             if(data[i] == x)return i;  
  37.         }  
  38.         return -1;  
  39.     }  
  40.     //在线性表中第i个位置插入值为x的结点  
  41.     public boolean InsertElem(int x,int i){  
  42.         //在表中第i个位置插入值为x的结点  
  43.         //若插入成功,则返回true,否则返回false  
  44.         //插入位置不合理,插入失败  
  45.           
  46.         if(i<0||i>Last||Last == MaxSize)  
  47.             return false;  
  48.         else  
  49.         {  
  50.             //后移  
  51.             for(int j = Last;j>i;j--)  
  52.                 data[j] = data[j-1];  
  53.             //插入  
  54.             data[i] = x;  
  55.             //表长增一  
  56.             Last++;  
  57.             return true;              
  58.         }  
  59.           
  60.     }  
  61.     //删除线性表的第i个结点  
  62.     public boolean DeleteElem(int i){  
  63.         //删除表中第i个结点,若成功,返回true;否则返回false;  
  64.         //第i个结点不存在,删除失败;  
  65.         if(i<0||i>=Last||Last == 0)  
  66.             return false;  
  67.         else  
  68.         {  
  69.             //前移  
  70.             for(int j=i;j<Last-1;j++)  
  71.                 data[j] = data[j+1];  
  72.             //表长减1  
  73.             Last--;  
  74.             return true;  
  75.         }  
  76.     }  
  77.     public void display(){  
  78.         System.out.println("当前链表长度:"+ ListLength());  
  79.         for(int i=0;i<Last;i++)  
  80.         {  
  81.             System.out.println("第"+i+"结点为:"+data[i]);  
  82.         }  
  83.     }  
  84. }</span>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值