java 线性表_线性表的Java实现

一、概念

对于常用的数据结构,可分为线性结构和非线性结构,线性结构主要是线性表,非线性结构主要是数和图。当n>0时,表可表示为:(a0,a1,a2,a3,…an)

1、 线性表的特征:

1、存在唯一的被称作”第一个”的数据元素

2、存在唯一的一个称作”最后一个的”数据元素”

3、除第一个之外,集合中的每个数据元素均只有一个前驱

4、除最后一个之外,集合中每个元素均只有一个后继

2、线性表的基本操作

1、初始化:

2、返回线性表长度

3、获取指定索引处元素

4、按值查找元素位置

5、直接插入数据元素

6、向指定位置插入元素

7、直接删除元素

8、删除指定位置元素

二、顺序存储结构

线性表的顺序结构是指用一组地址连续的存储单元依次存放线性表的元素。下面采用数组实现顺序结构线性表。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 importjava.util.Arrays;2 public class Sequence{3 privateObject[] elementData;//定义一个数组

4 privateint DEFAULT_SIZE = 1; //数组默认大小

5 privateint capacity; //数组容量

6 privateint size = 0; //当前数组大小7 //初始化

8 publicSequence(){9 capacity= this.DEFAULT_SIZE;10 elementData= newObject[capacity];11 }12

13 publicSequence()(T element){14 this();15 elementData[0]=element;16 size++;17 }18

19 //返回线性表长度

20 public intlength(){21 return this.size;22 }23

24 //返回指定索引处元素。

25 public T getElementByIndex(intindex){26

27 if(index< 0 || index > (size-1)){28 System.out.println("索引范围越界!!!");29 System.exit(0);30 }31 return(T)elementData[index];32 }33 //按值查找数据元素的位置

34 public intgetIndexByValue(T value){35 for(int i = 0; i < elementData.length;i++){36 if(value.equals(elementData[i])){37 returni;38 }39 }40 return -1;//未找到则返回-1

41 }42

43 //向指定位置插入元素

44 public void insert(T element,intindex){45 ensureCapacity(); //确保线性表容量够

46 if(index>= 0 && index

49 for(i= (size-1); i >= index;i--){50 elementData[i+1]=elementData[i];51 }52 elementData[i+1]= element;//插入该元素

53 size++; //数组当前容量+1

54 }55 else{56 throw new IndexOutOfBoundsException("插入元素位置越界!!!");57 }58 }59

60 //想线性表末尾添加元素

61 public voidadd(T element){62 ensureCapacity(); //确保线性表容量够

63 elementData[size]=element;64 size++;65 }66

67 //删除线性表中指定位置元素

68 public void delete(intindex){69 if(index>&#

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值