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