【线性表|大学数据结构之顺序表的实现(Java版本)】相信大家在大学学习数据结构的时候大学的教材大多数是采用C语言版本实现的吧!那么大家有没有考虑过如何用Java语言来实现这些数据结构呢?关注我,我将持续把所有的数据结构都用Java重新写一遍,希望能对想学好的同学们有所帮助!
有疑问的可以留言或者私信,看到了就会一一解答的。
package sequenceList;
import java.util.Iterator;
public class SequenceList implements Iterable{//iterate :重复,反复
//存储元素的数组
private T[] eles;
//记录当前顺序表中元素的个数
private int N;
//构造方法
public SequenceList(int capacity){
//初始化数组
this.eles=(T[])new Object[capacity];
//new一个object类型的数组然后强转成T类型数组
//初始化长度
this.N=0;
}
//将线性表置为空表
public void clear(){
this.N=0;
}
//判断当前线性表是否为空表
public boolean isEmpty(){return N==0;
}
//获取线性表的长度
public int length(){return N;
}
//获取指定位置的元素
public T get(int i){return eles[i];
}
//向线性表中添加元素t
public void insert(T t){
if(N==eles.length){//如果元素个数等于数组长度,就代表无法添加元素,需要扩容
resize(eles.length*2);
}
eles[N++]=t;
//每添加一个元素,N(线性表长度)的值会自增一个
}
//在i处插入元素t
public void insert(int i,T t){
if(N==eles.length){//如果元素个数等于数组长度,就代表无法添加元素,需要扩容
resize(eles.length*2);
}
//先把i索引处极其后面的元素依次向后移动一位
for(int index=N;
index>i;
index--){
eles[index]=eles[index-1];
}
//再把t元素放到i索引处即可
eles[i]=t;
//元素个数+1
N++;
}
//删除指定索引i处的值,并返回该元素
public T remove(int i){
//记录索引i处的值
T current=eles[i];
//索引i后面的元素依次向前移动一位即可
for(int index=i;
index iterator() {
// TODO Auto-generated method stub
return new SIterator();
//返回内部类对象
}
private class SIterator implements Iterator{
private int cusor;
//eles的指针
publicSIterator() {
// TODO Auto-generated constructor stub
this.cusor=0;
}
@Override
public boolean hasNext() {//判断当前容器中还有没有下一个元素
// TODO Auto-generated method stub
return cusor
推荐阅读
- 经典程序|数据结构之用栈来解决括号匹配问题(Java实现)
- 经典程序|数据结构之双向链表(Java实现)
- 数据结构|数据结构之单链表的实现(Java版本)
- 经典程序|利用C语言创建数据结构中链表的遍历及其基本操作
- 网络编程|BIO和NIO
- Java|MyBatis Demo演示
- Java|SpringMVC demo
- Java|mybatis demo之查询测试
- Java学习|Cannot resolve org.springframework.boot:spring-boot-starter-logging:2.2.1.RELEASE解决办法