最简单的数据结构——顺序表,此处以数组为例。

顺序表的优点:支持随机读取,内存空间利用率高。

顺序表的缺点:1.需要预先给出最大数据元素个数,这往往很难实现。

2.插入和删除时需要移动大量数据。

SeqList.java

package com.sheepmu;

public class SeqList {
private int maxSize;
private int size;
private Object[] arrayList;
public SeqList(int sz){
maxSize=sz;
size=0;
arrayList=new Object[sz];
} public void insert(int i,Object obj)throws Exception{//顺序表的 插入
if(size==maxSize)
throw new Exception("顺序表已满,无法插入!");
if(i<0||i>size)
throw new Exception("插入位置不存在!"); //for(int j=i;j<=size;j++)
// arrayList[j+1]=arrayList[j];这不是每个后移了,这是把后面的每个都变成arrayList[j] for(int j=size;j>i;j--){//这个才能实现真正的后移~!!
arrayList[j]=arrayList[j-1];
} arrayList[i]=obj;
size++;
} public Object delete(int i)throws Exception{//顺序表 删除
if(size==0)
throw new Exception("顺序表已为空");
if(i<0||i>size)
throw new Exception("删除位置不存在!");
Object obj=arrayList[i];
for(int j=i;j<size;j++){
arrayList[j]=arrayList[j+1];//前移~
}
size--;
return obj;
} public Object getData(int i)throws Exception{//取值
if(i<0||i>size)
throw new Exception("该位置不存在!");
return arrayList[i];
}
public int getSize(){//大小
return size;
}
public boolean isEmpty(){//是否为空
return size==0;
}
}

SeqListTest1.java

package com.sheepmu;
/**
* 建立一个线性表,依次输入元素0,1,2...9;然后在第4个位置插入9 ,然后删除数据元素7。最后依次显示当前线性表元素。
* 采用顺序表实现。
* @author SheepMu
*
*/
public class SeqListText1 {
public static void main(String[] args) throws Exception{
SeqList seqList=new SeqList(100);
System.out.println("原始线性表:");
for(int i=0;i<10;i++){
seqList.insert(i, new Integer(i));
System.out.print (seqList.getData(i) +" ");
}
System.out.println("插入一个元素后:");
seqList.insert(4, new Integer(9));
for(int i=0;i<seqList.getSize();i++){
System.out.print (seqList.getData(i) +" ");
}
System.out.println("删除一个元素后:");
seqList.delete(7);
for(int i=0;i<seqList.getSize();i++){
System.out.print (seqList.getData(i) +" ");
}
}
}

顺序表----java实现的更多相关文章

  1. 数据结构顺序表Java实现

    Java实现顺序表算法:1:首先我们需要定义我们的接口,关于顺序表的一些基本的操作:顺序表中的操作都有增删改查. //List接口 public interface IList { //返回线性表的大 ...

  2. 顺序表JAVA代码

        publicclassSeqList{       final int defaultSize =10;     //默认的顺序表的最大长度     int maxSize;          ...

  3. 顺序表java实现

    public class SeqList { Object[] data; int maxSize; int length; public SeqList(int maxSize) { this.ma ...

  4. Java实现顺序表

    利用顺序存储结构表示的顺序表称为顺序表. 它用一组连续的地址存储单元一次存放线性表中的数据元素. 顺序表的实现是数据结构中最简单的一种. 由于代码中已经有详细注释,代码外不再阐述. 下次再陈上关于顺序 ...

  5. 线性表中顺序表的的理解和实现(java)

    线性表的顺序表示指的是用一组地址连续的存储单元以此存储线性表的数据元素,这种表示也称作线性表的顺序存储结构或顺序映像.通常,称这种存储结构的线性表为顺序表.特点是:逻辑上相邻的数据元素,其物理次序上也 ...

  6. java顺序表和树的实现

    一.顺序表 1.线性表 //java顺序表的实现,如ArrayList就是用线性表实现的,优点是查找快,缺点是添加或删除要移动很多元素,速度慢 public class SequenceList { ...

  7. 数据结构Java实现02----线性表与顺序表

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  8. java 顺序表

    想看看java版的数据结构,了解一下树的一些操作,写了个顺序表熟悉一下 package com.sqlist; /** * @author xiangfei * 定义一个顺序表 * */ public ...

  9. 线性表 及Java实现 顺序表、链表、栈、队列

    数据结构与算法是程序设计的两大基础,大型的IT企业面试时也会出数据结构和算法的题目, 它可以说明你是否有良好的逻辑思维,如果你具备良好的逻辑思维,即使技术存在某些缺陷,面试公司也会认为你很有培养价值, ...

随机推荐

  1. Win32 Windows编程 十

    一 Windows画图 1 图形绘制 1.1 图形绘制的方式 获取到画图的句柄,设备描写叙述符(DC).使用对应的画图API.在设备上绘制图形 1.2 颜色 RGB,每种颜色8位,共24位颜色 32位 ...

  2. LA 3027 Corporative Network 并查集记录点到根的距离

    Corporative Network Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu [S ...

  3. Python的TkinterButton做为父窗口

    #-*-coding:utf--*- import Tkinter,time,tkMessageBox,sys,BeBigModule class MainFrame: def __init__(se ...

  4. SVN常见问题及解决方案

    . 隐藏文件.svn目录删除了怎么办 Checkout后,工作空间下.svn目录下有大量隐藏文件,占用比较大的空间,他们是工作空间的管理文件,不能删除,如果不小心删除了也不要抓狂,不会影响服务器端的, ...

  5. C语言中结构体參数变量的传递

    [文章摘要] 在C语言中,结构体參数变量常常作为函数的參数来进行传递.但假设參数设置不当.会出现内存问题. 本文以实际的程序代码为例.具体地介绍怎样正确地使用结构体參数变量.为相关的开发工作提供了參考 ...

  6. Conversion to Dalvik format failed with error 1

    主要和添�的第三方的包有关系. ======================================= 出现,Conversion to Dalvik format failed with e ...

  7. 谁的用户在世界上是&#160;&#160;明基决心保时捷设计标准

        谈到保时捷.相信非常多人都非常了解,世界名车啊,仅仅有高富帅才玩儿得起.只是,假设由保时捷的设计师来设计一款显示器,水准一流.质地厚道,且价格亲民,你怎么看?     如近期京东上热销的明基G ...

  8. 【原创】leetCodeOj --- Sliding Window Maximum 解题报告

    天,这题我已经没有底气高呼“水”了... 题目的地址: https://leetcode.com/problems/sliding-window-maximum/ 题目内容: Given an arr ...

  9. 基础知识(1)- Java程序设计概述

    1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语  1.2.1 简单性  1.2.2 面向对象  1.2.3 网络技能  1.2.4 健壮性  1.2.5 安全性  1.2.6 体系 ...

  10. HDU1163 Eddy&#39;s digital Roots【九剩余定理】

    Eddy's digital Roots Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth ...