Java数据结构(1)---顺序表
以下程序在JDK1.5.0_05环境下调试通过,程序分3个文件,放在同一目录下
//List.java 顺序表抽象数据类型的接口定义
public interface List
{
public void insert(int i,Object obj) throws Exception; //插入
public Object delete(int i) throws Exception; //删除
public Object getData(int i) throws Exception; //取数据元素
public int size(); //求元素个数
public boolean isEmpty(); //是否空
}
//SeqList.java 顺序表类
public class SeqList implements List
{
final int defaultSize = 10;
int maxSize;
int size;
Object[] listArray;
public SeqList()
{
initiate(defaultSize);
}
public SeqList(int size)
{
initiate(size);
}
private void initiate(int sz)
{
maxSize = sz;
size = 0;
listArray = 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 = size;j > i;j--)
listArray[j] = listArray[j-1];
listArray[i] = obj;
size++;
}
public Object delete(int i) throws Exception
{
if(size == 0)
{
throw new Exception("顺序表已空无法删除!");
}
if(i < 0 || i > size-1)
{
throw new Exception("参数错误!");
}
Object it = listArray[i];
for(int j = i;j < size-1;j++)
listArray[j] = listArray[j+1];
size--;
return it;
}
public Object getData(int i) throws Exception
{
if(i < 0 || i >= size)
{
throw new Exception("参数错误!");
}
return listArray[i];
}
public int size()
{
return size;
}
public boolean isEmpty()
{
return size == 0;
}
public int MoreDataDelete(SeqList L,Object x) throws Exception
{
int i,j;
int tag = 0;
for(i = 0;i < L.size;i++)
{
if(x.equals(L.getData(i)))
{
L.delete(i);
i--;
tag = 1;
}
}
return tag;
}
}
//SeqListTest1.java 示例程序1(主程序)
public class SeqListTest1
{
public static void main(String args[])
{
SeqList seqlist = new SeqList(100);
int n = 10;
try
{
for(int i = 0;i < n;i++)
{
seqlist.insert(i,new Integer(i+1));
}
seqlist.delete(4);
for(int i = 0;i < seqlist.size;i++)
{
System.out.print(seqlist.getData(i)+" ");
}
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
}
//SeqListTest2.java 示例程序2
public class SeqListTest2
{
public static void main(String args[])
{
SeqList seqList = new SeqList(100);
Student[] student;
student = new Student[3];
student[0] = new Student(2000001,"张三","男",20);
student[1] = new Student(2000002,"李四","男",21);
student[2] = new Student(2000003,"王五","女",22);
int n = 3;
try
{
for(int i = 0;i < n;i++)
{
seqList.insert(i,student[i]);
}
for(int i = 0;i < seqList.size;i++)
{
Student st = (Student)seqList.getData(i);
System.out.println(st.getNumber()+" "+st.getName()+" "+st.getSex()+" "+st.getAge());
}
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
}
class Student
{
private long number;
private String name;
private String sex;
private int age;
Student(long number,String name,String sex,int age)
{
this.number = number;
this.name = name;
this.sex = sex;
this.age = age;
}
public long getNumber()
{
return number;
}
public String getName()
{
return name;
}
public String getSex()
{
return sex;
}
public int getAge()
{
return age;
}
}
本站原创,转帖请注明出处:http://hi.baidu.com/jadmin/blog/谢谢!
转载于:https://www.cnblogs.com/jadmin/archive/2007/04/29/2206469.html
Java数据结构(1)---顺序表相关推荐
- java设计一个顺序表类的成员函数_顺序表代码讲解以及实现
用C语言编写一个有关顺序表的程序代码 创建一个顺序表,其数据元素类型为整型: 在该顺序表中插入数据(#include #include #define MaxSize 50 typedef char ...
- java如何给顺序表赋值_JAVA模拟新增顺序表及单链表
最近在回顾大学学的数据结构,这里给大家用javwww.cppcns.coma模拟顺序表和单链表的新增 1顺序表新增 /** * 顺序www.cppcns.com表 * * @author cjd * ...
- 【数据结构】顺序表的应用(4)(C语言)
[数据结构]顺序表的应用(1)(C语言) [数据结构]顺序表的应用(2)(C语言) [数据结构]顺序表的应用(3)(C语言) 设计一个算法,将一个顺序表倒置,即如果顺序表各个节点值存储在一维数组a中, ...
- 【数据结构】顺序表的应用(3)(C语言)
问题: 已知一个顺序表中的各节点值是从大到小有序的,设计一个算法,插入一个值为x的节点,使顺序表中的节点仍然是从小到大有序的. 头文件与该头文件一样:[数据结构]顺序表的实现(C语言) #includ ...
- 【数据结构】顺序表的应用(2)(C语言)
问题: 2.有顺序表A和B,其元素均按从小到大的升序排列,编写一个算法,将它们合并成一个顺序表C,要求C的元素也按从小到大的升序排列. 头文件与该头文件一样:[数据结构]顺序表的实现(C语言) #in ...
- 【数据结构】顺序表的应用(1)(C语言)
问题: 1.将顺序表(a1,a2,-,an)重新排列以a1为界的两部分:a1前面的值均比a1小,a1后面的值均比a1大(这里假设数据元素的类型具有可比性,不妨设为整型). 头文件与该头文件一样:[数据 ...
- 数据结构 创建顺序表
3.18数据结构--创建顺序表 运行结果截图: #define _CRT_SECURE_NO_WARNINGS #define MAXSIZE 100 #include<stdio.h> ...
- 数据结构之顺序表的删除、查找、遍历
一.引言 本篇文章作为顺序表新的篇章延续上一篇文章(数据结构之顺序表构造.插入.扩容操作)的内容. 二.顺序表的删除.查找.遍历操作 注:代码实现均为C语言 1.顺序表的删除(erase)操作 当我们 ...
- 数据结构_顺序表SeqList(C++
数据结构_SeqList顺序表(C++实现 文章目录 数据结构_SeqList顺序表(C++实现 前言&注意事项 顺序表实现方法 总结 结束 前言&注意事项 有些函数没有修改成员数据的 ...
- Tsai笔记:C++学习随性笔记(2)—— 数据结构:顺序表的基本操作
Tsai笔记:C++学习随性笔记(2)-- 数据结构:顺序表的基本操作 Tsai三步.(第一步,功能说明.第二步,结果图显示.第三步,代码展示) 第一步,功能说明. 1.线性表的顺序存储 线性表的顺序 ...
最新文章
- ELK/EFK — 安装部署(主机安装)
- golang编译错误 copying /tmp/go-build069786374/b001/exe/a.out: No such file or directory 解决方法
- 基于数据挖掘的旅游推荐APP(五):景点推荐模块
- 使用OpenExif修改jpeg图片信息
- 《Python编程从入门到实践》记录之文件异常(try-except-else代码块)
- 分享一篇SCCM软件更新的故障排除
- 【POJ3889】Fractal Streets(分形图)
- Android IPC系列(三):Binder概述
- Django(二):安装django、创建项目及目录结构说明、在pycharm中搭建
- 常见HTTP状态码大全
- 关于MAC的pkg和mpkg的分别
- 汇编语言程序设计思维导图
- 爬虫千万条,守法第一条,爬虫不规范,亲人两行泪
- 深度相机Kinect2.0三维点云拼接实验(三)
- 华为MA5626 ONU配置成交换机及开启POE指令教程
- linux firefox打不开网页,FireFox网页打不开(火狐)
- 学生信息管理系统中系统登录问题
- 嵌入式 课程设计指导书
- 基于jsp的网络在线考试系统
- 如何用计算机给手机杀毒,怎么用手机给u盘杀毒
热门文章
- OpenGL基础19:法向量与漫反射
- HDU 6183 2017广西邀请赛:Color it(线段树)
- HDU 6166 2017 多校训练:Senior Pan(最短路)
- 利用k-means算法实现图像自动色彩量化
- python更换tkinter图标样式
- Warning: The TensorFlow library wasn't compiled to use SSE,SSE2,SSE3,SSE4.1 instructions
- socket编程---SCTP
- Mybatis编写初始化Dao代码
- linux 如何连通网络
- RocketMQ3.2.6安装部署及调用