想看看java版的数据结构,了解一下树的一些操作,写了个顺序表熟悉一下

 package com.sqlist;

 /**
* @author xiangfei
* 定义一个顺序表
*
*/
public class SqlList {
final int deflen = 10;
int maxlen;
int curlen;
Object elements[]; /**
* 默认构造方法
*/
public SqlList(){
maxlen = deflen;
curlen = 0;
elements = new Object[maxlen];
}
/**
* 根据一个数据和最大长度初始化一个数据表
* @param array
* @param maxlen
*/
public SqlList(Object array[], int maxlen){
this.maxlen = array.length > maxlen ? array.length : maxlen;
curlen = array.length;
elements = new Object[this.maxlen]; //copy
for(int i = 0; i < maxlen; i++){
elements[i] = array[i];
}
}
/**
* @param sqlList
* 拷贝构造方法
*/
public SqlList(SqlList sqlList){
this.maxlen = sqlList.maxlen;
this.curlen = sqlList.curlen;
//这里用深度拷贝
elements = new Object[this.maxlen];
//copy
for(int i = 0; i < this.maxlen; i++){
elements[i] = sqlList.elements[i];
}
}
/**
* 向指定位置position插入元素element
* @param element
* @param position
* @return
*/
public boolean insertElement(Object element, int position){
if(position < 0 || position >= maxlen)
return false;
else{
int i = curlen - 1;
while(i > position){
elements[i] = elements[i - 1];
}
elements[position] = element;
return true;
}
}
/**
* 删除指定位置的元素
* @param position
* @return
*/
public Object deleteElement(int position){
if(position < 0 || position >= curlen)
return null;
else{
Object elementDel = elements[position];
int i = position;
while(i < curlen){
elements[i] = elements[i + 1];
}
return elementDel;
}
}
/**
* 打印所有的元素
*/
public void showSqlList(){
for(int i = 0; i < curlen; i++)
{
System.out.print(elements[i].toString() + " ");
}
}
}

测试类(这里只测了一个构造方法,其他方法也写的很粗糙)

 package com.sqlist;

 /**
* 测试顺序表
* @author xiangfei
*
*/
public class SqlListTest {
public static void main(String args[]){
Integer array_int[] = new Integer[]{1, 2, 3};
SqlList sqlList = new SqlList(array_int, 3); sqlList.showSqlList();
}
}

java 顺序表的更多相关文章

  1. java顺序表和树的实现

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

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

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

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

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

  4. 顺序表----java实现

    最简单的数据结构--顺序表,此处以数组为例. 顺序表的优点:支持随机读取,内存空间利用率高. 顺序表的缺点:1.需要预先给出最大数据元素个数,这往往很难实现. 2.插入和删除时需要移动大量数据. Se ...

  5. Java实现顺序表

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

  6. [Java算法分析与设计]--线性结构与顺序表(List)的实现应用

    说到线性结构,我们应该立马能够在脑子里蹦出"Array数组"这个词.在Java当中,数组和对象区别基本数据类型存放在堆当中.它是一连串同类型数据存放的一个整体.通常我们定义的方式为 ...

  7. 数据结构——Java实现顺序表

    一.分析 什么是顺序表?顺序表是指用一组地址连续的存储单元依次存储各个元素,使得在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中的线性表.一个标准的顺序表需要实现以下基本操作: 1.初始化顺序表 ...

  8. 数据结构(java版)学习笔记(二)——线性表之顺序表

    顺序表的优点: 随机存取元素方便,根据定位公式容易确定表中每个元素的存储位置,所以要指定第i个结点很方便 简单,直观 顺序表的缺点: 插入和删除结点困难 扩展不灵活,难以确定分配的空间 容易造成浪费 ...

  9. 使用JAVA数组实现顺序表

    1,引入了JAVA泛型类,因此定义了一个Object[] 类型的数组,从而可以保存各种不同类型的对象. 2,默认构造方法创建了一个默认大小为16的Object数组:带参数的构造方法创建一个指定长度的O ...

随机推荐

  1. C++Builder 2010 Release版本配置

    1.Project->Options->C++Compiler 右边Build Configuration 选择 Release,点击Apply选择optionset文件(第四步中保存op ...

  2. 五、Eclipse编写struts.xml没有提示的问题

      五.Eclipse编写struts.xml没有提示的问题 原因:找不到约束文件 解决: 联网 手工配 a.eclipse的菜单:window\preferences

  3. 2. XAML

    1. 什么是 XAML XAML 可以说是 XML 的一个特殊子集,使用相同的语法,只是 XML 可以自定义任何的节点和属性,但 XAML 是有所限制的,只能在规定的命名空间下使用. 2. names ...

  4. linux常用命令--ps、netstat、find

     一.ps 1.1ps命令简介 Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那 ...

  5. Dalvik opcodes

    原文地址: http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html Dalvik opcodes Author: Gabor Paller V ...

  6. ASP.NET MVC4学习笔记之Controller的激活

    一. 高层相关类说明 当路由系统根据请求Url收集路由信息后,下一步就要将路由信息传给Controller激活系统,Controller激活系统负责实现了IController接口的Controlle ...

  7. Test,Nginx Hello World Module

    ngx_addon_name=ngx_http_mytest_module HTTP_MODULES="$HTTP_MODULES ngx_http_mytest_module" ...

  8. hdu 1029

    #include"stdio.h" int main(void) { int n,x,y,t,i; while(scanf("%d",&n)!=EOF) ...

  9. 使用 libevent 和 libev 提高网络应用性能——I/O模型演进变化史

    构建现代的服务器应用程序需要以某种方法同时接收数百.数千甚至数万个事件,无论它们是内部请求还是网络连接,都要有效地处理它们的操作. 有许多解决方案,但事件驱动也被广泛应用到网络编程中.并大规模部署在高 ...

  10. linux log find 查询

    常用的日志查询命令:find 1.从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行: find / -type f -name "*.log" | xa ...