数据结构的核心思想是通过数据结构的思维来优化代码的算法,以此来提升程序的执行性能,缩短程序执行的时间。下面我来举两个例子,以此来说明数据结构的时间复杂度计算问题。
由于我这里操作的是线性表——顺序表,所以说先把线性表——顺序表的源代码贴出来
AbstractLineMethod.java
package com.mycompany;
import util.ObjectHolder;
/**
* Created by HP on 2017/9/6.
*/
public interface AbstractLineMethod {
/**
* 初始化线性表
* @param size
*/
void initList(int size);
/**
* 销毁线性表
*/
void destroyList();
/**
* 清空线性表
*/
void clearList();
/**
* 线性表判空
* @return
*/
boolean listEmpty();
/**
* 获取线性表的长度
* @return
*/
int listLength();
/**
* 获取指定位置处的元素
* @param i
* @param ele
* @return
*/
public boolean getElem(int i, ObjectHolder ele);
/**
* 获取该元素在线性表中第一次出现的位置
* @param ele
* @return
*/
public int locateElem(ObjectHolder ele);
/**
* 获取指定元素的前驱
* @param currentElem
* @param preElem
* @return
*/
public boolean priorElem(ObjectHolder currentElem,ObjectHolder preElem);
/**
* 获取指定元素的后继
* @param currentElem
* @param nextElem
* @return
*/
public boolean nextElem(ObjectHolder currentElem,ObjectHolder nextElem);
/**
* 在线性表的指定位置处插入元素
* @param i
* @param ele
* @return
*/
public boolean listInsert(int i,Object ele);
/**
* 删除线性表指定位置处的元素
* @param i
* @param ele
* @return
*/
public boolean listDelete(int i,ObjectHolder ele);
/**
* 循环遍历线性表
*/
public void listTraverse();
}
LineMethod.java
package com.mycompany;
import util.ObjectHolder;
/**
* Created by HP on 2017/9/6.
*/
public class LineMethod implements AbstractLineMethod{
private int m_size = 0;
private Object[] m_pList = null;
private int m_iLength = 0;
/**
* 初始化线性表
* @param size
*/
public void initList(int size){
this.m_size = size;
this.m_pList = new Object[size];
this.m_iLength = 0;
}
/**
* 销毁线性表
*/
public void