線性表簡單地說就是資料元素的序列,即一對一關係;
讀取:o(1)
插入、刪除:o(n)
**實現:
package org.xiazdong.list;
public class myarraylist
public myarraylist(int length)
public myarraylist(tarr)
else
} public boolean contains(t e)
} return false;
} public boolean insert(t e)
//如果容量不夠,則擴充
if(length>=t.length)
t[length++] = e;
return true;
} public boolean remove(t e)
else
if(length>=t.length)
for(int j=t.length-1;j>=i;j--)
t[i] = e;
length++;
return true;
} private void larger(int len)
public void insert(t elem)
current.next = n;
first.elem++;
} public void insert(int i,t elem)
node current = first;
node n = new node(elem,null);
int count = 0;
while(current.next!=null&&countfirst.elem)
//1.找到位置
node current = first;
int count = 0;
while(current.next!=null&&countfirst.elem)
int count = 0;
node current = first;
while(current.next!=null&&count
陣列實現
鍊錶實現
優點讀取快
不需要預先分配、插入刪除方便
缺點預先分配大小、插入刪除麻煩
讀取慢
迴圈鍊錶就是尾指標指向頭指標,形成乙個迴圈;
**實現:
package org.xiazdong.list;
/** *
* *
* @author xzdong
* * @param */
public class mycircularlinkedlist
public void insert(t elem)
current.next = n;
first.elem++;
} public void insert(int i,t elem)
node current = first;
node n = new node(elem,null);
int count = 0;
while(current.next!=null&&countfirst.elem)
//1.找到位置
node current = first;
int count = 0;
while(current.next!=first&&countfirst.elem)
int count = 0;
node current = first;
while(current.next!=first&&count
在單鏈表的基礎上,每個節點增加pre指標,指向前驅;
資料結構複習之線性表
基本概念 從邏輯上可以把資料結構分為線性結構和非線性結構兩大類。對於給定的n個元素,可以構造出的邏輯結構有 集合,線性結構,樹形結構,圖狀結構或網狀結構。乙個資料元素可以由若干個資料項組成。資料項是最小單位。線性表的順序表示指的是用一組位址連續的儲存單元依次儲存線性表的資料元素。構建乙個空的線性表 ...
複習資料結構 線性表
線性表實現 陣列方式 隨機訪問很快,常數級別。但是增刪慢了,n級別。預先要知道線性表的大小 鍊錶方式 隨機訪問不急,n級別。但是增刪快,常數級別。就是c 的new delete操作效能不怎樣,可以用free list來維護增刪的節點。對於new delete操作有5倍左右提公升吧。基於陣列 指標構造...
資料結構之線性表(一)(複習)
繼續複習資料結構,今天覆習最為基礎的線性表部分。首先來介紹什麼是線性表 線性表是 n 0 個資料元素的有限序列,記作 a1,a2,an ai 是表中資料元素,n 是表長度。線性表的特點 線性表是客觀事物的抽象 是我們對現實事物的抽象表達 接下來介紹其抽象資料型別 基於其抽象資料型別的基本運算 或許你...