題目:反向輸出單向鍊錶
解題思路:反向輸出單向鍊錶方法有很多,但筆者採用自建單向鍊錶,自建鏈棧,將單向鍊錶中元素輸入棧中,再取出棧中元素,輸入到新單向鍊錶中
**見下:
//自定義鍊錶/鏈棧節點類
public
class
node
//自建單向鍊錶
public
class
linklist
/*** 插入節點
* @param element :節點元素值
*/public
void
insertlinklist
(t element)
node node =
newnode()
;//生成節點
node.data = element;
if(head.next == null)
else
temp.next = node;
node.next = null;}}
/** * 值刪除
** @param element : 要刪除的值
* @return :刪除則為true 否則為假
*/public
boolean
deletelinklist
(t element)
while
(temp.next != null)
else
}return
false;}
/** * 列印
*/public
void
printlinklist()
system.out.
println()
;}/** * 求長度
** @return : 返回的長度
*/public
intsizelinklist()
return size;
}/**
* 下標刪除
** @param i : 要刪除的值下標
* @return :刪除則為true 否則為假
*/public
boolean
deleteindexlinklist
(int i)
if(i <
0|| i >=
sizelinklist()
)while
(temp.next != null)
temp = temp.next;
}return
false;}
/** * 給定值求下標
** @param element :要找的元素
* 返回值 index 如果為-1 則沒有找到
*/public
intgetindexbydata
(t element)
while
(temp.next != null)
} system.out.
println
("要查詢的值不存在!");
return index;
}/**
* 給定下標求值
* @param index
*/public object getdatabyindex
(int index)
if(index >=
sizelinklist()
|| index <0)
while
(temp.next !=null)
size++;}
return null;
}}
//自建鏈棧
public
class
linkstack
/*** 入棧,插入節點
* @param element :節點元素值
*/public
void
pushlinkstack
(t element)
node node =
newnode()
;//生成節點
node.data = element;
if(top == null)
else
}/**
* 出棧,刪除棧頂元素
** @param element : 要刪除的值
* @return :刪除則為true 否則為假
*/public object poplinkstack()
else
}/**
* 列印
*/public
void
printlinkstack()
system.out.
println()
;}/** * 求鏈棧長度
** @return : 返回的長度
*/public
intsizelinkstack()
return size;
}}
//反向輸出鍊錶
public
class
antitonelinklist
//生成乙個棧
linkstack
linkstack=
newlinkstack()
;//棧初始化
linkstack.
initlinkstack()
;//給棧賦值
for(
int j=
0;j<
5;j++
)//列印原鍊錶
linklist.
printlinklist()
;//列印棧
linkstack.
printlinkstack()
;//生成乙個新的單向鍊錶
linklist
linklistnew=
newlinklist()
;//初始化
linklistnew.
initlinklist()
;//給新鍊錶賦值
int sizestack=linkstack.
sizelinkstack()
;for
(int k=
0;k)//列印新鍊錶
system.out.
println
("*****輸出反向鍊錶*****");
linklistnew.
printlinklist()
;}}
單向鍊錶實現棧
首先我們要知道 棧 為何物 他是一種儲存資料的方法 有點類似子彈夾 擁有先進後出的特點 同時進棧與出棧都只能在一端進行.public inte ce mystack public class node public object getdate public void setdate object ...
鍊錶 單向鍊錶
討論單鏈表之前,我們先來討論下面這個問題。順序表存在的一些問題 中間 頭部的插入刪除,時間複雜度為o n 增容需要申請新空間,拷貝資料,釋放舊空間。會有不小的消耗。增容一般是呈2倍的增長,勢必會有一定的空間浪費。例如當前容量為100,滿了以後增容到200,我們再繼續插入了5個資料,後面沒有資料插入了...
鍊錶 反轉單向鍊錶
思路 從第二個元素開始。1 刪除當前元素。2 把當前元素放到頭結點位置。其中需要宣告3個變數 headnode 頭結點 prenode 前乙個結點 currentnode 當前結點 具體步驟如圖所示 實現 反轉單鏈表方法實現類 created by liujinjin on 17 1 19.publ...