以下是利用数组实现顺序表的代码及测试:
package SequenceList;
public class SequenceList {
public int length=10; //初始化数组的大小
private int current; //总是指向数组的最后一个元素
private Object[] data; //存放数组元素
public SequenceList(){ //初始化
this.data=new Object[length];
current=0;
}
public void add(Object value){ //在末尾添加元素
ensurecap();
data[current]=value;
current++;
}
public void add(int pos,Object obj){ //在指定的位置添加元素
ensurecap();
if(pos>current){
System.out.println("the pos is not correct!");
}
else{
for(int i=current;i>pos-1;i--){
data[i]=data[i-1];
}
data[pos-1]=obj;
}
current++;
}
public void delete(int pos){ //删除某个位置的元素
if(pos>current||pos<1){
System.out.println("the pos is not correct!");
}else{
for(int i=pos-1;i<current;i++){
data[i]=data[i+1];
}
current--;
}
}
public Object get(int pos){
return data[pos-1];
}
public int getSize(){
return current;
}
public void display(){
for(int i=0;i<current;i++){
System.out.print(data[i]+" ");
}
}
public void ensurecap(){ //只要数组满了就扩容,而不是等到插入的时候才扩容
if(current==length){
Object[] data_new=new Object[length*2];
for(int i=0;i<length;i++){
data_new[i]=data[i];
}
data=data_new;
length=2*length;
}
}
public static void main(String[] args) {
SequenceList sl=new SequenceList();
sl.add(1);
sl.add(2);
sl.add(3);
sl.add(4);
sl.add(5);
sl.add(6);
sl.add(7);
sl.add(8);
sl.add(9);
sl.add(10);
sl.add(11);
sl.add(12);
sl.display();
System.out.println(" size is:"+sl.getSize());
sl.delete(1);
sl.display();
System.out.println(" size is:"+sl.getSize());
sl.delete(5);
sl.display();
System.out.println(" size is:"+sl.getSize());
sl.add(9, 7);
sl.display();
System.out.println(" size is:"+sl.getSize());
}
}
分享到:
相关推荐
数据结构与算法----线性表及Java实现顺序表、链表、栈、队列 定义线性表节点的结构.pdf
对于数据结构中顺序表的实现,建立了一个接口、两个类。通过在类中调用,实现顺序表功能。
java中顺序表的操作,实现顺序表的初始化,插入,删除,查找,添加等操作。
我又进一步完善了顺序表结构的常见算法,其中node是顺序表类,SplitList是测试类。写的不好,请大家批评指教。
本人也在学习当中,今天只编写了一点,后面我会陆续把对应某种数据结构的算法一一实现上传。编写的不好,请大家批评指教!
通过java顺序表实现约瑟夫环的两种方式: 1.通过数组移动 2.通过记录出对列的人员下标,下次查数时跳过
(1)创建一个顺序表,存放在数组 A[N]中,元素的类型为整型,设计算法调整 A,使其左边的所有元素小于 0,右边的所有元素大于 0(要求算法的时间复杂度和空间复杂度均为 O(n))。 (2)建立一个循环单链表,其节点...
java算法 顺序表操作实例 用Java进行顺序表的数据插入,删除,显示功能
顺序存储结构线性表的java实现代码,要在jdk1.6以上环境下运行
分别用C、C++、Java实现的顺序表,可供参考。
关于顺序表的一些课程设计 建立顺序表,完成顺序表的基本操作:初始化、插入、删除、输出(遍历)、销毁, 置空表、求表长、查找元素、判线性表是否为空等。
Java顺序表的学习实现代码,支持多种数据类型的临时存储
通过简单的程序解决约瑟夫环问题 c++文件
在不使用java.util包的情况下,利用顺序表实现大整数加减,属于比较基础的java数据结构应用吧。
通过Java实现单链表的操作,包括单链表定义、遍历、置空、判空、插入、删除、反转、中间结点、指定顺序排序、前插、后插、判断单链表是否存在环、环的长度、环的起始结点
学生管理系统采用顺序表、模版类、 友元函数等C++比较不经常见的模式来实现,可以帮助你更好的弄清楚C++的一些特殊用法。
最简单的实现通讯录,供参考学习扩展,本人也是初学望交流
数据结构-链表 JAVA语言实现,包含单向链表、双向链表、循环链表的遍历、删除和插入 详细介绍:http://blog.csdn.net/z740852294/article/details/77369439
实验要求 编程实现如下功能: (1)根据输入顺序表的长度n和各个数据元素值建立一个顺序表,并输出顺序表中各 元素值,观察输入的内容与输出的内容是否一致。 (2)在顺序表的第i个元素之前插入一个值为x的元素,并...
主要介绍了数据结构顺序表操作示例,其中有在第I个元素前插入数据x,元素从0开始计数、删除第i个元素,元素从0开始计数的方法,需要的朋友可以参考下