首先,根據(jù)你給的信息,估計是有循環(huán)操作,另外,既然命名是temp,就表示它是個臨時變量,起到的作用可能只是變量傳值的一個中介,就像冒泡排序的時候,循環(huán)中,兩個變量值需要調(diào)換的時候,往往都是這樣,第一個變量值賦值給第二個變量,第二個變量值賦值給temp,最后把temp賦值給第一個變量。
目前創(chuàng)新互聯(lián)建站已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計、樂業(yè)網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
至于temp為什么要賦null值,還是因為要循環(huán)的原因,循環(huán)當(dāng)中,變量是要賦值多次的,
if ((h=(stud *)malloc(sizeof(stud)))==NULL)\\這一行的作用是什么?
這行是用來分配空間的。。,如果分配失敗就返回。
if((s=(stud *)malloc(sizeof(stud)))==NULL)\\為什么要循環(huán)多次地執(zhí)行這行?這行的作用是什么?
這行也是,因為有n個人,每個人都要分配空間啊。
return(h);\\這行代碼又有什么作用?
把建立好的鏈表返回調(diào)用函數(shù)
我用VC++6.0運行該程序時提示“Error spawing CL.EXE”,該怎么解決?
可能是這個文件變成了只讀, 重新建立一個就行。
樓主,這個是合理的,分析如下:
在List 類的add方法中,循環(huán):
while (e.next!=null)//居然是空的 那么這里判斷他非空不是沒有意義么
e=e.next;
作用是獲取鏈表的最后一個元素,以使新添加的結(jié)點能夠掛到最后面。當(dāng)你第一次添加結(jié)點的時候, head的next也是為空,那么循環(huán)后面的兩句代碼:
e.next=newEntry;
return newEntry;(注意這兩句不屬于循環(huán)體)意思就是把head的next結(jié)點設(shè)置為新添加的結(jié)點了。這個時候,head的next值就不為空了,其指向的是你剛才添加的結(jié)點。
這時如果再次添加結(jié)點,循環(huán)while (e.next!=null)將會循環(huán)一次,在循環(huán)結(jié)束時,e就不再指向head了,而是指向你上次添加的結(jié)點,也就是鏈表的最后一個結(jié)點。
remove方法中也是這樣的原理。希望能幫助到樓主
本文標(biāo)題:java單鏈表代碼看不懂 java中有鏈表嗎
文章鏈接:http://jinyejixie.com/article40/heppeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、外貿(mào)建站、網(wǎng)站改版、域名注冊、服務(wù)器托管、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)