解析:p0指向要插入的結(jié)點,p1指向要和p0結(jié)點的info進行比較的結(jié)點,如果找到應(yīng)該插入的位置,p0會被插入在p1之前,如果沒找到,會被插入在p1之后。第一個if檢查鏈表是否為空,如果為空,直接將p0變?yōu)槭捉Y(jié)點就完成了插入。

成都創(chuàng)新互聯(lián)公司專注于企業(yè)營銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、解放網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、html5、商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為解放等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
所以函數(shù)create的意思就是,若給的參數(shù)head非空,就在它后面添加一個節(jié)點,否則就新建一個節(jié)點并且返回該節(jié)點(作為單鏈表的表頭)。
函數(shù)首先定義了一個頭就是head ,其實它也是個節(jié)點,然后創(chuàng)建其他的節(jié)點,創(chuàng)建后輸入數(shù)據(jù),畢竟節(jié)點是保存數(shù)據(jù)的,然后在從節(jié)點頭開始遍歷將新創(chuàng)建的節(jié)點連接 在最后面。
鏈表是相同類型的若干個結(jié)構(gòu)體用其自身攜帶的指針按照一定順序串聯(lián)成的一個鏈。
看你的疑問,在你的意識里,鏈表一定有個不帶數(shù)據(jù)的鏈表頭。
判斷ki 這個可以放在前面,也是用來判斷輸入?yún)?shù)是否正確,鏈表開始應(yīng)該是1,如果i1那就不對了。因為刪除節(jié)點是一個一個刪除的,而c語言里面刪除是用free。當(dāng)刪除的時候。指向下一個節(jié)點的指針也沒了。
//寫出建立一個帶頭結(jié)點的線性鏈表的函數(shù),其中每個結(jié)點包括學(xué)號、姓名、分數(shù)三個數(shù)據(jù)域。
不是L里面存的那個地址,即函數(shù)里面那個*L相當(dāng)于是 *(&L),這個叫做指針的指針。另外,你這個數(shù)據(jù)結(jié)構(gòu)的代碼看不懂,你可以去看看c語言里面講的那個結(jié)構(gòu)體。
不會的,新的變量都是重新分配的新空間,只要你自己不在代碼里面越界操作,沒有任何一個訪問會侵占你的鏈表空間。
1,鏈表是否為空鏈表 2,要插入的節(jié)點是不是空指針。
p0 = stu; //p0指向要插入的節(jié)點 if(head == NULL) //這個是檢查鏈表是不是空的 { head = p0; //如果是空的就把要插入的結(jié)點,設(shè)置為頭指針。
//printf(input records:\n);//這句有錯不知道為甚么 - - struct student* head,*stu;這兩句交換一下,C語言不能在定義之前調(diào)用函數(shù)。
代碼寫得不錯。有如下幾點要更正:1,主函數(shù)main 中的pnew-m=k;pnew沒有申請就使用了。
文章標(biāo)題:c語言函數(shù)傳鏈表 c語言 鏈表
文章源于:http://chinadenli.net/article13/deihggs.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、App設(shè)計、App開發(fā)、網(wǎng)頁設(shè)計公司、自適應(yīng)網(wǎng)站、軟件開發(fā)
聲明:本網(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)