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

正文內(nèi)容

c∕c程序設(shè)計(jì)教程(中)ppt(參考版)

2025-01-22 08:22本頁(yè)面
  

【正文】 head p1 num p2 p1 num /* delet(struct student *head,int num)函數(shù) : 刪除結(jié)點(diǎn) */ /*形參值: head 頭結(jié)點(diǎn), num 刪除結(jié)點(diǎn)值 */ /*返回值:返回單鏈表的頭指針 */。 head=p1next。 ( 1)刪除首結(jié)點(diǎn) 使 p1指向第一個(gè)結(jié)點(diǎn),用以下語(yǔ)句實(shí)現(xiàn)刪除首結(jié)點(diǎn)操作。 ( 2)刪除其它結(jié)點(diǎn) 刪除鏈表的中間結(jié)點(diǎn)通過(guò)將下一結(jié)點(diǎn)地址賦給前一結(jié)點(diǎn)地址來(lái)實(shí)現(xiàn),即將要?jiǎng)h除的 p1結(jié)點(diǎn)的后繼地址,放入前一結(jié)點(diǎn) p2的地址域( p2next=p1next。 查找要?jiǎng)h除的結(jié)點(diǎn),使 p1指向它, p2指向 p1的前一結(jié)點(diǎn)。 /*移動(dòng)指針 */ } } ?刪除結(jié)點(diǎn) ?主要步驟: 假設(shè)在結(jié)點(diǎn)類型為 student的鏈表中刪除 num域?yàn)槟硞€(gè)值的結(jié)點(diǎn)。 while(p!=NULL) { printf(%d,%\n,pnum,pscore)。 } /* void print(struct student *head)為鏈表輸出函數(shù) */ /*形參 head為要輸出鏈表的頭指針 */ void print(struct student *head){ struct student *p。 /*使 p2指向新鏈結(jié)點(diǎn) */ } p2next=NULL。 p2next=p1。p1num,amp。i++) { p1= ( struct student * )malloc(LEN)。 /*讀入數(shù)據(jù) */ for(i=2。p2num,amp。 head=p2=(struct student * ) malloc(LEN)。 } /*create(int n)函數(shù) : 創(chuàng)建一個(gè)具有頭結(jié)點(diǎn)的單鏈表 */ /*形參 n值:創(chuàng)建鏈表的結(jié)點(diǎn)數(shù) */ /*返回值:返回單鏈表的頭指針 */ struct student *create(int n){ int i。 head=create(n)。 scanf(%d,amp。 void print(struct student *head)。 struct student *head。 }。 float score。) 例 建立有 n個(gè) student類型結(jié)點(diǎn)的鏈表, n的值從鍵盤(pán)輸入,再輸出鏈表。) , 依次創(chuàng)建后面的結(jié)點(diǎn) , 直到所有的結(jié)點(diǎn)建立完畢 。 如圖 (b)所示: 使 p2指向新鏈結(jié)點(diǎn): p2=p1。p1score)。 scanf(%d%f,amp。 /*讀入數(shù)據(jù) */ (3) 再用 malloc函數(shù)開(kāi)辟另一個(gè)結(jié)點(diǎn)并使 p1指向它,接著輸入該結(jié)點(diǎn)的數(shù)據(jù),并與上一結(jié)點(diǎn)相連,且使 p2指向新建立的結(jié)點(diǎn)。p2num,amp。 head=p2=(struct student * )malloc(sizeof(struct student))。 p2:指向鏈表的尾結(jié)點(diǎn),用 p2next= p1,實(shí)現(xiàn)將新申請(qǐng)的 結(jié)點(diǎn)插入到鏈表尾,使之成為新的尾結(jié)點(diǎn)。 head:頭指針變量,指向鏈表第一個(gè)結(jié)點(diǎn),作函數(shù)返回值。 ?建立鏈表 ?輸出鏈表 ?查找結(jié)點(diǎn) ?刪除 結(jié)點(diǎn) ?插入 結(jié)點(diǎn) ?鏈表的基本操作 ? 建立鏈表 ? 主要步驟:(結(jié)點(diǎn)為 struct student類型數(shù)據(jù)結(jié)構(gòu)) ( 1)先設(shè)三個(gè)指針變量: head、 p p2,它們都是用來(lái)指向struct student類型數(shù)據(jù)的。 其作用是釋放由 p指向的內(nèi)存區(qū),使這部分內(nèi)存區(qū)能被其他 變量使用。 ( 2) sizeof(type)運(yùn)算符 計(jì)算所給數(shù)據(jù)類型 type的字節(jié)數(shù),主要用來(lái)計(jì)算鏈表中結(jié) 點(diǎn)所占動(dòng)態(tài)存儲(chǔ)空間的字節(jié)數(shù)。 } ?動(dòng)態(tài)存儲(chǔ)空間的建立和釋放 ?動(dòng)態(tài)存儲(chǔ)空間的建立 ( 1) malloc函數(shù),其函數(shù)原型為: 函數(shù)原型為: void *malloc(unsigned int size)。 p=pnext。 p=head。 } } ?統(tǒng)計(jì)鏈表的長(zhǎng)度 void len_link(struct student *head) { int n=0。 while(p!=NULL) { printf(“%d,%\n”,pnum,pscore)。 ?單向鏈表的訪問(wèn) ?輸出鏈表各個(gè)結(jié)點(diǎn)的數(shù)據(jù) void print(struct student *head) { struct student *p。 struct student *next。 struct student { int num。 ( 3) 尾結(jié)點(diǎn)的指針域置為 “ NULL(空 )”, 作為鏈表結(jié)束標(biāo)志 。 ( 2) 每個(gè)結(jié)點(diǎn)一般由 2個(gè)域組成: 1) 數(shù)據(jù)域 ──存儲(chǔ)結(jié)點(diǎn)本身的信息 。 ?鏈表的基本結(jié)構(gòu) 鏈表是一種常用的、能夠?qū)崿F(xiàn)動(dòng)態(tài)存儲(chǔ)分配的數(shù)據(jù)結(jié)構(gòu)。 鏈表是動(dòng)態(tài)的進(jìn)行存儲(chǔ)分配,鏈表的各個(gè)結(jié)點(diǎn)在邏輯上是連續(xù)的,但是在內(nèi)存中存儲(chǔ)時(shí)不占用連續(xù)的空間。 printf(Return...\n)。 parmc=parma*parmb。 parma=18。 } void func(struct data *parm) { printf(parma=%d parmb=%d parmc=%d\n,parma,parmb,parmc)。arg)。 printf(Call Func()....\n)。 =+。 =27。 main() { void func(struct data *parm)。 } arg a :27 b: 3 c :30 (main) (func) parm a :27 b: 3 c :30 copy arg a :27 b: 3 c :30 (func) parm a :18 b: 5 c :90 a :27 b: 3 c :30 例 用結(jié)構(gòu)體變量作函數(shù)參數(shù) struct data { int a, b, c。 printf(=%d =%d =%d\n,)。 =5。 printf(Process...\n)。 printf(=%d =%d =%d\n,)。 printf(Call Func()....\n)。 =+。 =27。 main() { void func(struct data)。 } num name sex age stu[0] p stu[1] stu[2] p+1 – 用指向結(jié)構(gòu)體的指針作函數(shù)參數(shù) 用結(jié)構(gòu)體變量的成員作參數(shù) 值傳遞 用指向結(jié)構(gòu)體變量或數(shù)組的指針作參數(shù) 地址傳遞 用結(jié)構(gòu)體變量作參數(shù) 多值傳遞 ,效率低 struct data { int a, b, c。pstu+3。 main() { struct student *p。F39。M39。M39。 int age。 char name[20]。 =101。 stru ct student *p=amp。 *p=10。 int *p=amp。 printf(\nNo:%ld\nname:%s\nsex:%c\nscore:%f\n, (*p).num,pname,pscore)。M39。 strcpy(,Li Lin)。stu_1。 }stu_1,*p。 char sex。 (*結(jié)構(gòu)體指針名 ).成員名 結(jié)構(gòu)體指針名 成員名 結(jié)構(gòu)體變量名 .成員名 指向運(yùn)算符 優(yōu)先級(jí) : 1 結(jié)合方向:從左向右 例 指向結(jié)構(gòu)體的指針變量 main() { struct student { long int num。 struct student *p=amp。 int age。 char name[20]。 例 struct student *p。i++) printf(%5s:%d\n,leader[i].name,leader[i].count)。 } for(i=0。j3。i++) { scanf(%s,leader_name)。 for(i=1。 main() { int i,j。 int count。 strcpy(stu[0].name,”ZhaoDa”)。 }str[3]。 char sex。 全部初始化時(shí)維數(shù)可省 結(jié)構(gòu)體數(shù)組引用 引用方式: 結(jié)構(gòu)體數(shù)組名 [下標(biāo) ].成員名 struct student { int num。 }。 char sex。 分行初始化 : struct student { int num。 int age。 char name[20]。 struct student stu[ ]={100,“Wang Lin”,?M?,20, 101,“Li Gang”,?M?,19, 110,“Liu Yan”,?F?,19}。 int age。 char name[20]。 }stu[ ]={{……},{……},{……}}。 char sex。 num name sex age num name sex age stu[0] stu[1] 25B – 結(jié)構(gòu)體數(shù)組初始化 例 struct { int num。 int age。 char name[20]。 }stu[2]。 char sex。 形式二 : struct student { int num。 }。 char sex。 結(jié)構(gòu)體數(shù)組 – 結(jié)構(gòu)體數(shù)組的定義 三種形式: 形式一 : struct student { int num。 char addr[30]。 char sex。 形式三: struct { 類型標(biāo)識(shí)符 成員名; 類型標(biāo)識(shí)符 成員名; ……………. }結(jié)構(gòu)體變量 ={初始數(shù)據(jù) }; 例 struct { int num。 char addr[30]。 char sex。 形式二: struct 結(jié)構(gòu)體名 { 類型標(biāo)識(shí)符 成員名; 類型標(biāo)識(shí)符 成員名; ……………. }結(jié)構(gòu)體變量 ={初始數(shù)據(jù) }; 例 struct student { int num。 }。 int age。 char name[20]。 }stu1,stu2。 float score。 char sex。 例 struct student { int num。 }stu1,stu2。 int year。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1