java 顺序表

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

 1 package com.sqlist;
 2
 3 /**
 4  * @author xiangfei
 5  * 定义一个顺序表
 6  *
 7  */
 8 public class SqlList {
 9     final int deflen = 10;
10     int maxlen;
11     int curlen;
12     Object elements[];
13
14     /**
15      * 默认构造方法
16      */
17     public SqlList(){
18         maxlen = deflen;
19         curlen = 0;
20         elements = new Object[maxlen];
21     }
22     /**
23      * 根据一个数据和最大长度初始化一个数据表
24      * @param array
25      * @param maxlen
26      */
27     public SqlList(Object array[], int maxlen){
28         this.maxlen = array.length > maxlen ? array.length : maxlen;
29         curlen = array.length;
30         elements = new Object[this.maxlen];
31
32         //copy
33         for(int i = 0; i < maxlen; i++){
34             elements[i] = array[i];
35         }
36     }
37     /**
38      * @param sqlList
39      * 拷贝构造方法
40      */
41     public SqlList(SqlList sqlList){
42         this.maxlen = sqlList.maxlen;
43         this.curlen = sqlList.curlen;
44         //这里用深度拷贝
45         elements = new Object[this.maxlen];
46         //copy
47         for(int i = 0; i < this.maxlen; i++){
48             elements[i] = sqlList.elements[i];
49         }
50     }
51     /**
52      * 向指定位置position插入元素element
53      * @param element
54      * @param position
55      * @return
56      */
57     public boolean insertElement(Object element, int position){
58         if(position < 0 || position >= maxlen)
59             return false;
60         else{
61             int i = curlen - 1;
62             while(i > position){
63                 elements[i] = elements[i - 1];
64             }
65             elements[position] = element;
66             return true;
67         }
68     }
69     /**
70      * 删除指定位置的元素
71      * @param position
72      * @return
73      */
74     public Object deleteElement(int position){
75         if(position < 0 || position >= curlen)
76             return null;
77         else{
78             Object elementDel = elements[position];
79             int i = position;
80             while(i < curlen){
81                 elements[i] = elements[i + 1];
82             }
83             return elementDel;
84         }
85     }
86     /**
87      * 打印所有的元素
88      */
89     public void showSqlList(){
90         for(int i = 0; i < curlen; i++)
91         {
92             System.out.print(elements[i].toString() + " ");
93         }
94     }
95 }

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

 1 package com.sqlist;
 2
 3 /**
 4  * 测试顺序表
 5  * @author xiangfei
 6  *
 7  */
 8 public class SqlListTest {
 9     public static void main(String args[]){
10         Integer array_int[] = new Integer[]{1, 2, 3};
11         SqlList sqlList = new SqlList(array_int, 3);
12
13         sqlList.showSqlList();
14     }
15 }
时间: 2024-11-20 15:48:57

java 顺序表的相关文章

java顺序表和树的实现

一.顺序表 1.线性表 //java顺序表的实现,如ArrayList就是用线性表实现的,优点是查找快,缺点是添加或删除要移动很多元素,速度慢 public class SequenceList { private int MAXLENGTH;//顺序表大小 private int count;//线性表存在数据个数 private Data[] data; //数据储存 private static class Data{ String name; int stuNo; int scores;

数据结构----顺序表与单链表(JAVA)

下面为学习顺序表和单链表的一些基本操作函数: 1 public class SeqList<T> extends Object { 2 protected int n; 3 protected Object[] element; 4 5 public SeqList(int length) { 6 this.element = new Object[length]; 7 this.n = 0; 8 } 9 10 public SeqList() { 11 this(64); 12 } 13 1

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

[正文] 本节内容: 线性结构 线性表抽象数据类型 顺序表 顺序表应用 一.线性结构: 如果一个数据元素序列满足: (1)除第一个和最后一个数据元素外,每个数据元素只有一个前驱数据元素和一个后继数据元素: (2)第一个数据元素没有前驱数据元素: (3)最后一个数据元素没有后继数据元素. 则称这样的数据结构为线性结构. 二.线性表抽象数据类型: 1.线性表抽象数据类型的概念: 线性表抽象数据类型主要包括两个方面:既数据集合和该数据集合上的操作集合. 数据集合: 可以表示为a0,a1,a2,...a

JAVA实现具有迭代器的线性表(顺序表)

1,先了解下JAVA类库中的迭代器:JAVA提供了两种基本类型的迭代器,分别用两个接口来表示:Iterator<T>,ListIterator<T>.其中,Iterator<T>接口中只定义了三个方法:hasNext().iterator().next(),而ListIterator<T>中,除了拥有前面所述的三种方法外,而另外拥有hasPrevious().previous().remove().set()等其他方法(具体参考JDK文档). 这说明:实现了

Java数据结构-线性表之顺序表ArrayList

线性表的顺序存储结构,也称为顺序表,指用一段连续的存储单元依次存储线性表中的数据元素. 根据顺序表的特性,我们用数组来实现顺序表,下面是我通过数组实现的Java版本的顺序表. package com.phn.datestructure; /** * @author 潘海南 * @Email [email protected] * @TODO 顺序表 * @date 2015年7月16日 */ public class FOArrayList<E> { // 顺序表长度 private int

使用JAVA数组实现顺序表

1,引入了JAVA泛型类,因此定义了一个Object[] 类型的数组,从而可以保存各种不同类型的对象. 2,默认构造方法创建了一个默认大小为16的Object数组:带参数的构造方法创建一个指定长度的Object数组 3,实现的顺序表的基本操作有:返回表的长度.获取指定索引处的元素(注意是索引,而不是位置.索引以下标0开始,位置以下标1开始).按值查找数据元素的位置.直接插入元素(顺序表尾部).向指定位置插入元素.直接删除元素(在顺序表尾部).删除指定索引处元素.判断表是否为空.清空表. 1 im

java数据结构与算法之顺序表与链表深入分析

转载请注明出处(万分感谢!): http://blog.csdn.net/javazejian/article/details/52953190 出自[zejian的博客] 关联文章: java数据结构与算法之顺序表与链表设计与实现分析 java数据结构与算法之双链表设计与实现 ??数据结构与算法这门学科虽然在大学期间就已学习过了,但是到现在确实也忘了不少,因此最近又重新看了本书-<数据结构与算法分析>加上之前看的<java数据结构>也算是对数据结构的进一步深入学习了,于是也就打算

闭关修炼中 *** Java常用算法之 -- 顺序表结构

给我的好姐姐聊聊天代码也打完了,小弟可是一心二用了,不过代码确实是挺长的. 代码打的时间长短不重要,重要的是理解~理解~理解.重要的事说三遍!!! 每天的重复,恨不得一天过成两天马上结束了,能多学点是点了. 山再高,咱能有耐心.同样如此~哈哈. 贴上代码吧: 1 import java.util.Scanner; 2 3 /***************************************** 4 * * 5 * 顺序结构 * 6 * * 7 ********************

java线性表之顺序表实现

仿照arrayList写了一个简化版的线性表,主要为了用来研究arrayList在实现什么操作的情况下比较节省性能,楼主文采很差,直接上代码. import java.util.Arrays; public class SequenceList<T> { private final int DEFAULT_SIZE = 16; // 保存数组的长度 private int capacity; // 定义一个数组用于保存顺序线性表的元素 private Object[] elementData;