freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

工學(xué)結(jié)構(gòu)體ppt課件(參考版)

2024-11-06 20:42本頁面
  

【正文】 } 綜合實(shí)習(xí): 數(shù)組、結(jié)構(gòu)體與指針 鏈表操作 : 創(chuàng)建鏈表 輸出鏈表 Main( ) 刪除結(jié)點(diǎn) 插入結(jié)點(diǎn) ? EXAMPLE 2. . . 用結(jié)構(gòu)體數(shù)組對 10名學(xué)生的成績進(jìn)行排序(冒泡法和選擇法)。 //插入到最后的結(jié)點(diǎn)后面 } n=n+1。 } else { p1next=p0。 //插入到第一個結(jié)點(diǎn)前面 else p2next=p0。 //p1后移一個結(jié)點(diǎn) } 插入結(jié)點(diǎn)的函數(shù)如下 :函數(shù)的參數(shù)是 head和要插入的結(jié)點(diǎn)存儲空間首地址指針 (stud), 函數(shù)的返回值是鏈表頭指針 head , head的值可能在函數(shù)執(zhí)行過程中被改變 ( 當(dāng)插入到第一個結(jié)點(diǎn)之前時 ) 。(p1next!=NULL) { p2=p1。} //使 p0指向的結(jié)點(diǎn)作為頭結(jié)點(diǎn) else while((p0nump1num)amp。 //p0指向待插入的結(jié)點(diǎn) if(head==NULL) //原來的鏈表是空表 {head=p0。 p1=head。 p0 e t 。 P0next=p1。 p0 e t 。 對鏈表的插入操作 過程實(shí)現(xiàn): 0001 head 0002 76 0004 88 NULL p2 p1 p0 0003 80 要插入結(jié)點(diǎn)指針 前移指針 緊隨指針 過程實(shí)現(xiàn): 0001 head 0002 76 0004 88 NULL p2 p1 p0 0003 80 p2next=p0。 為簡單起見 , 假設(shè)有一個學(xué)生鏈表 , 各結(jié)點(diǎn)已按其成員學(xué)號 ( num) 的值 由小到大順序排列 , 現(xiàn)在要插入一個學(xué)生的結(jié)點(diǎn) , 要求按學(xué)號的順序插入 。 return(head)。 n=n1。 else p2next=p1next。 p1=p1next。amp。 } p1=head。 if (head==NULL) { coutlist nullendl。 head p1 head 0001 0002 76 0003 88 NULL head 要刪除的結(jié)點(diǎn)分兩種情況: ② 要 刪 除 的 不 是 第 一 個 結(jié) 點(diǎn) , 則 應(yīng) 執(zhí) 行 p2next=p1next,即 p2next指向了 p1next所指向的結(jié)點(diǎn) , p1所指向的結(jié)點(diǎn)就被刪除而不再是鏈表的成員了 。 這時 , head指向了原來的第二個結(jié)點(diǎn)。 再繼續(xù)判斷 p1所指的結(jié)點(diǎn)是不是要刪除的結(jié)點(diǎn) ,如此重復(fù) ,直到找到要刪除的結(jié)點(diǎn)并將其刪除或是檢查完全部鏈表為止 。 對鏈表的刪除操作 head 0001 0002 76 0003 88 NULL 執(zhí)行過程: 設(shè)兩個指針 p1和 p2,先使 p1指向第一個結(jié)點(diǎn) 。 從指針變量 p指向的第一個結(jié)點(diǎn)開始 , 檢查該結(jié)點(diǎn)中的 num是否為要刪除的學(xué)號 ,如果是則將其刪除 。 } 對鏈表的刪除操作是把某個結(jié)點(diǎn)從鏈表中摘除 ,并不是真正從內(nèi)存中將這個結(jié)點(diǎn)刪除掉 , 使它脫離原來的鏈表 , 解除原來的鏈接關(guān)系 。 p=pnext。 if(p==NULL) return。 //使 p指向下一個結(jié)點(diǎn) }while(p!=NULL)。 do{ coutpnum“ ”pscoreendl。 head 0001 0002 76 0003 88 NULL void print(struct student *p) { cout“These ”n“ records are:”endl。 /*建立鏈表, 并返回表頭 */ print(head1)。 cout“input records:”endl。首先要知道鏈表第一個結(jié)點(diǎn)的地址,也就是要知道表頭結(jié)點(diǎn) head的值 ,然后依次通過各結(jié)點(diǎn) next的值找到下一個結(jié)點(diǎn),就可以依次輸出所有結(jié)點(diǎn)的數(shù)據(jù),直到鏈表的尾結(jié)點(diǎn)為止。 return head。 } delete p1。 } p1 = new(student)。 // 將鏈表中第一個新建結(jié)點(diǎn)作為表頭 else{ p2next = p1。 //返回表頭指針 }//end creat head 0001 0002 76 p2 0003 88 p1 NULL 建立表尾結(jié)點(diǎn) while(p1num != 0) // ( 2) { n ++。 p2next =NULL。 // 新建一個結(jié)點(diǎn) cinp1nump1score。 p2 = p1。 if (n == 1) head = p1。 return head。 } delete p1。 } p1 = new(student)。 // 將鏈表中第一個新建結(jié)點(diǎn)作為表頭 else{ p2next = p1。 //返回表頭指針 }//end creat head 0001 0002 76 p2 p1 0003 88 while(p1num != 0) // ( 2) { n ++。 p2next =NULL。 // 新建一個結(jié)點(diǎn) cinp1nump1score。 p2 = p1。 if (n == 1) head = p1。 return head。 } delete p1。 } p1 = new(student)。 // 將鏈表中第一個新建結(jié)點(diǎn)作為表頭 else{ p2next = p1。 //返回表頭指針 }//end creat while(p1num != 0) // ( 2) { n ++。 p2next =NULL。 // 新建一個結(jié)點(diǎn) cinp1nump1score。 p2 = p1。 if (n == 1) head = p1。 cinp1nump1score。 //在沒有創(chuàng)建任何結(jié)點(diǎn)時,表頭指向空 p1 = new student。 0003 88 0 0 p1 NULL 建立表尾結(jié)點(diǎn) struct student * creat( ) { student *head,*p1,*p2。 ④ 當(dāng)輸入某個結(jié)點(diǎn)數(shù)據(jù)后 ,如果 p1num等于 0,則不再執(zhí)行上述循環(huán) ,此新結(jié)點(diǎn)不應(yīng)該被連接到鏈表中 ,用語句“ p2next=NULL”,將 NULL值賦給前一個結(jié)點(diǎn)的 next成員 。 p1 0003 88 p2 head 0001 0002 76 ③ 重復(fù)步驟 ② ,依次建立若干個新結(jié)點(diǎn) 。 ④ 當(dāng)輸入某個結(jié)點(diǎn)數(shù)據(jù)后 ,如果 p1num等于 0,則不再執(zhí)行上述循環(huán) ,此新結(jié)點(diǎn)不應(yīng)該被連接到鏈表中 ,用語句“ p2next=NULL”,將 NULL值賦給前一個結(jié)點(diǎn)的 next成員 。 p1 0003 88 p2 head 0001 0002 76 ③ 重復(fù)步驟 ② ,依次建立若干個新結(jié)點(diǎn) 。 ④ 當(dāng)輸入某個結(jié)點(diǎn)數(shù)據(jù)后 ,如果 p1num等于 0,則不再執(zhí)行上述循環(huán) ,此新結(jié)點(diǎn)不應(yīng)該被連接到鏈表中 ,用語句“ p2next=NULL”,將 NULL值賦給前一個結(jié)點(diǎn)的
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1