雙向鍊錶和單向鍊錶相比更加靈活,它的每乙個元素除了本身的值以為擁有兩個指標,分別指向上乙個和下乙個節點。維護成本上要高於單向鍊錶。鍊錶的大部分操作依賴於遍歷,這一方面雙向鍊錶會效率會好一些,可以根據查詢下標的位置從而選擇從煉表頭開始遍歷還是從鍊錶尾開始遍歷。
}//返回元素個數
public
intsize()
//遍歷鍊錶
public
void
show()
else
temp =temp.next;}}
}//根據下標獲取節點
public t get(int
index)
private node get(int
index, string s)
else
if (index >=size)
else
if (index < 0)
else
return
temp;
} else
return
temp;}}
}//在指定位置插入
public
void add(int
index, t t)
else
if (index < 0)
else
if (index == 0)
else
if (index ==size)
else
size++;
}//更改指定位置的元素
public
void set(int
index, t t)
else
if (index < 0)
else
}//刪除指定位置的元素
public
void remove(int
index)
else
if (index < 0)
else
if (index == 0)
else
if (index == size - 1)
else
size--;
}//返回頭節點
public
t getfirst()
//返回尾節點
public
t getlasts()
//節點物件
class
node
@override
public
string tostring() }}
view code
雙向鍊錶實現
template class link link link pre null,link ne null void operator new size t void operator delete void ptr template link link freelist null template v...
雙向鍊錶實現
雙向鍊錶的應用背景主要是單向鍊錶只能順序訪問,逆序訪問單向鍊錶 尤其是較大的單向鍊錶是一件極其費時費力的工作 相比於單向鍊錶,雙向鍊錶增加了乙個域,這個域裡面增加了乙個指向前驅節點的指標,使得整個鍊錶可以順序訪問或者逆序訪問,來去自如 定義的雙向鍊錶的標頭檔案,裡面包含了雙向鍊錶的宣告和資料型別的定...
鍊錶 java實現雙向鍊錶
前面已經總結了單向鍊錶,有興趣的兄弟可以進我部落格看一下。大家對比就可以看出,實現同樣的功能單向鍊錶要比雙向鍊錶痛苦的多。所以呀不斷地總結前輩留下的東西,是社會進步的基礎呀。可以直接看linkedlist的原始碼,其就是個雙向鍊錶。一 雙向鍊錶的結構。1 首先節點的結構,其中包含本節點內容,同時需要...