JAVA实现数据结构:数组链表

链表是数据结构中最基础的内容,链表在存储结构上分成两种:数组形式储存,链式存储。

相比c语言需要的结构体,在java中由于有了面向对象编程,将指针‘藏’了起来,不需要分配内存。

所以只需要创建一个对象数组,为了能让链表更加实用,方便存储非基本类型的对象,所以使用了泛型。

菱形运算符<>中放你自己写的或者基本类型,比如你创建了一个Stdent类,想用链表将很多学生的信息存起来。

就可以myArrayList a=new myArrayList();这个链表就都存Student类的对象了。

可以使用异常处理进一步优化。

  1. 链表接口
package 数据结构;

public interface List<E> {
   
	 //返回链表的大小,即数据元素的个数
    public int getSize();
    
    //判断链表是否为空
    public boolean isEmploy();
    
    //判断链表是否包含元素
    public boolean contains(E val);

    //头插
    public boolean headadd(E val);
    
    //尾插
    public boolean tailadd(E val);
    
    //返回数据元素在链表中的序号,若不存在返回-1
    public int indexOf(E val);
    
    //将数据元素插入到链表的i个位置,成功则返回true,失败false
    public boolean insert(int i,E val);
    
    //删除链表中序号为i的元素,成功则返回true,失败false
    public boolean remove(int i) ;
    
    //删除链表中第一个与元素相同的元素,成功true,失败false
    public boolean remove(E val);
    
    //替换链表中序号为i的元素
    public void replace(int i,E val) ;
    
    //返回链表中序号为i的元素
    public Object getval(int i) ;
    
    //输出链表
    public void print();
}

  1. 用数组实现的链表
package 数据结构;

import java.util.Arrays;

//@Override:重写父类方法时用于检验
public class myArrayList<E> implements List<E> {
   
	/**
	 * DEFAULT_SIZE 默认长度 单个数组最大长度 
	 * element 存储元素的数组
	 * capacity 当前链表容量(为了扩容存在)
	 * size 当前数据个数
	 */
	private final int DEFAULT_SIZE = 8;
	private Object[] element;
	private int capacit;
	private int size;

	// 初始化链表
	public myArrayList() {
   
		element = new Object[DEFAULT_SIZE];
		size = 0;
		capacit = DEFAULT_SIZE;
	}
	myArrayList(E[] array){
   
		if(array.length<=DEFAULT_SIZE) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值