java實現順序鏈表

 

C&C++是那麼難學,以致於我連指針是什麼都不知道。因此只能學習java了。java

現在想用java實現N年前學過「數據結構(c語言版)」卻又是那麼吃力!數據結構

慢慢練吧!函數

寫此博客,僅標記本身學過數據結構。以《數據結構(C語言版)》-嚴蔚敏 書本爲參考。學習

 

順序鏈表的java類文件:SequenceList.java文件測試

package list;



public class SequenceList {
	private int LIST_INIT_SIZE = 5;//鏈表的原始大小
	private int INCREMENT =1;//鏈表的增量大小
	private Object []SqList = null;//鏈表
	private int curIndex=0;//當前位置
	/**
	 * 初始化鏈表
	 * */
	public void initList()
	{
		SqList = new Object[LIST_INIT_SIZE];
	}
	/**
	 * 向鏈表中插入元素
	 * */
	public void insertList(Object o)
	{
		if(curIndex>LIST_INIT_SIZE-1)//判斷當前鏈表是否已經滿
		{
			//重新爲鏈表分配空間
			System.out.println("重新分配空間");
			LIST_INIT_SIZE+=INCREMENT;
			Object []temp = new Object[LIST_INIT_SIZE];
			for(int i=0;i<curIndex;i++)
			{
				temp[i]=SqList[i];
			}
			SqList=null;
			SqList=temp;
		}
		//鏈表中若是不讓其包含重複元素,則加入這段代碼
		/*
		if(isContain(o))
		{
			System.out.println("鏈表中已包含此元素"+o);
		}else
		{
			
		}
		*/
		SqList[curIndex++]= o;
	}
	/**
	 * 判斷鏈表中是否包含某元素
	 * */
	Boolean isContain(Object o)
	{
		for(int i=0;i<curIndex;i++)
		{
			if(SqList[i].equals(o))
			{
				return true;
			}
		}
		return false;
	}
	/**
	 * 刪除鏈表中的某元素
	 * 
	 * 若是包含重複元素都刪除
	 * */
	public void delete(Object o)
	{
		for(int i=0;i<curIndex;i++)
		{
			if(SqList[i].equals(o))
			{
				for(int j=i;j<curIndex-1;j++)
				{
					SqList[j]=SqList[j+1];
				}
				curIndex--;
				continue;
			}
			if(i==curIndex-1)
			{
				System.out.println("不存在此元素"+o);
			}
		}
	}
	
	/**
	 * 獲取鏈表中的某個元素
	 * */
	public Object getElement(int i)
	{
		if (i <= 0 || i > curIndex) 
		{
			System.out.println("獲取位置超出了鏈表中元素個數"+curIndex);
		}
		return SqList[i-1];
	}
	/**
	 * 打印鏈表
	 * */
	public void print()
	{
		for(int i=0;i<curIndex;i++)
		{
			System.out.print(SqList[i]+"\t");
		}
		System.out.println();
	}
	
}

  Main函數測試類指針

package list;

public class SequenceListMain {

	public static void main(String[] args) {
		SequenceList sqList = new SequenceList();
		sqList.initList();
		sqList.insertList(1);
		sqList.insertList(2);
		sqList.insertList(3);
		sqList.insertList(4);
		sqList.insertList(5);
		sqList.insertList(6);
		sqList.delete(5);
		sqList.delete(9);
		sqList.insertList(1);
		sqList.print();
		
		sqList.delete(1);
		sqList.print();
		
		System.out.println("第2個元素是:"+sqList.getElement(1));
		System.out.println("第4個元素是:"+sqList.getElement(4));
		
	}

}
相關文章
相關標籤/搜索