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

正文內(nèi)容

級(jí)c語(yǔ)言程序設(shè)計(jì)第9章結(jié)構(gòu)體與共用體-文庫(kù)吧資料

2025-01-12 18:46本頁(yè)面
  

【正文】 ? 其一般形式為: ? union 標(biāo)識(shí)符 ? { ? 類(lèi)型名 1 成員名 1。 )。 else qnext=pnext。 p=pnext。amp。 } p=head。 )。 struct node *del(struct node *head,int x ) { struct node *p,*q。 struct node *next。 鏈表的基本操作 ? 例 在例 績(jī)的節(jié)點(diǎn)。 5)如果 p所指節(jié)點(diǎn)不是指定節(jié)點(diǎn),但 p所指節(jié)點(diǎn)的指針域的值為NULL,則鏈表中不存在指定數(shù)據(jù)的節(jié)點(diǎn),刪除操作失敗,輸出相關(guān)信息。 3)如果 head不等于 NULL,用一個(gè)指針 p指向鏈表的第一個(gè)節(jié)點(diǎn),即 p=head,判斷 p所指節(jié)點(diǎn)是否為指定節(jié)點(diǎn),如果不是,移動(dòng)指針 p,使它指向它的下一節(jié)點(diǎn),重復(fù)判斷過(guò)程,直到 p所指節(jié)點(diǎn)是指定節(jié)點(diǎn)或 p所指節(jié)點(diǎn)的指針域的值為 NULL。 1)取鏈表頭指針 head。 鏈表節(jié)點(diǎn)的刪除操作同樣包括兩個(gè)子過(guò)程: ①確定刪除節(jié)點(diǎn)的位置;②刪除節(jié)點(diǎn)。 p=pnext。amp。 } p=head。 head=s。 sdata=y。 } struct node *insert(struct node *head,int x,int y ) { struct node *p,*q,*s。 pnext=s。 qnext=s。 head=s。 ? 例 在例 學(xué)生的計(jì)算機(jī)成績(jī)。 ? 6) 如果 p所指節(jié)點(diǎn)不是指定節(jié)點(diǎn) ,但 p所指節(jié)點(diǎn)的指針域的值為NULL,則鏈表中不存在指定數(shù)據(jù)的節(jié)點(diǎn),新節(jié)點(diǎn)插入到鏈尾,即 p所指節(jié)點(diǎn)之后,賦 p所指節(jié)點(diǎn)的指針域的值為新節(jié)點(diǎn)的地址,新節(jié)點(diǎn)指針域的值為 NULL。 ? 4) 如果 head不等于 NULL,用一個(gè)指針 p指向鏈表的第一個(gè)節(jié)點(diǎn),即 p=head,判斷 p所指節(jié)點(diǎn)是否為指定節(jié)點(diǎn),如果不是,移動(dòng)指針 p,使它指向它的下一節(jié)點(diǎn),重復(fù)判斷過(guò)程,直到 p所指節(jié)點(diǎn)是指定節(jié)點(diǎn)或 p所指節(jié)點(diǎn)的指針域的值為 NULL。 ? 2)申請(qǐng)分配新節(jié)點(diǎn)存儲(chǔ)單元,對(duì)新節(jié)點(diǎn)的數(shù)據(jù)域賦值。 ? 下面以新節(jié)點(diǎn)插入在節(jié)點(diǎn)數(shù)據(jù)等于某一指定數(shù)據(jù)的節(jié)點(diǎn)之前的情況分例介紹節(jié)點(diǎn)插入操作的算法。 2. 新節(jié)點(diǎn)插入在節(jié)點(diǎn)數(shù)據(jù)等于某一指定數(shù)據(jù)的節(jié)點(diǎn)之前(或后)。 其操作過(guò)程主要有兩個(gè)子過(guò)程:①確定插入位置;②插入新節(jié)點(diǎn)。 p=pnext。 p=head。 }。 ? 程序段如下: define NULL 0 define LEN sizeof(struct node) struct node { int data。 5)重復(fù)步驟 3)和 4),直到指針 p為空。 3)訪(fǎng)問(wèn) p所指節(jié)點(diǎn)。 鏈表節(jié)點(diǎn)的訪(fǎng)問(wèn)過(guò)程如下: 1)取鏈表頭指針 head。 int n。 struct node *next。 } return(head)。pdata)。 p= (struct node *)malloc(LEN)。 else qnext=p。 while(pdata!= 1) { n=n+1。pdata)。 p= (struct node *)malloc(LEN)。 n=0。 鏈表的基本操作 例 用鏈表存儲(chǔ)學(xué)生的計(jì)算機(jī)成績(jī)。 }。 ? 例 1:存儲(chǔ)三個(gè)同學(xué)的計(jì)算機(jī)成績(jī)的鏈表存儲(chǔ)方式如下: 80 head NULL 75 90 上述鏈表中節(jié)點(diǎn)的定義如下: struct node { int data。由于新插入的節(jié)點(diǎn)總是尾節(jié)點(diǎn),因此,它的指針域的值為空(即NULL)。 用尾插法建立鏈表的過(guò)程如下 : 1)建立一個(gè)空鏈表,即 head=NULL。 ( 1)鏈表的建立。 鏈表的頭指針定義如下: struct node *head。 struct node *next。顯然,鏈表節(jié)點(diǎn)的指針域存放的地址類(lèi)型與它自身的類(lèi)型是相同的。 }。 struct node { datatype data。 … free(p)。 例 3: int *p。其中, ptr是一個(gè)指針變量,指向最近一次調(diào)用函數(shù) malloc或 calloc時(shí)所分配的存儲(chǔ)空間的首地址。 /*分配 3個(gè)連續(xù)的存儲(chǔ)單元,并將其起始地址賦給整型指針變量 p*/ 動(dòng)態(tài)分配函數(shù) 3. free函數(shù) 函數(shù)格式: void free(void *ptr)。 例 2: int *p。形參 n和 size均為無(wú)符號(hào)整數(shù), n是連續(xù)存儲(chǔ)單元的個(gè)數(shù),size是一個(gè)存儲(chǔ)單元占用的字節(jié)數(shù)。 /*分配一個(gè) struct student結(jié)構(gòu)體類(lèi)型的存儲(chǔ)單元 ,用 head 指向該存儲(chǔ)單元 */ 上述函數(shù) sizeof(類(lèi)型名 )求出指定類(lèi)型的存儲(chǔ)單元所占字節(jié)數(shù) ? 動(dòng)態(tài)分配函數(shù) 2. calloc函數(shù) 函數(shù)格式: void calloc(unsigned int n, unsigned int size)。 /*分配一個(gè)整型存儲(chǔ)單元 (占用 2個(gè)字節(jié) ),用 p指向該存儲(chǔ)單元 */ lp=(long *)malloc(sizeof(long))。 struct student *head。 例 1: int *p。 鏈表的概念 ? 例 1:利用 C語(yǔ)言在計(jì)算機(jī)中存儲(chǔ)三個(gè)學(xué)生的計(jì)算機(jī)成績(jī),如果有定義 int a[3],則其內(nèi)存單元分配情況如下: … 80 a[0] 75 a[1] 90 a[2] … 鏈表的概念 ? 例 2:用鏈表存儲(chǔ)方式來(lái)存儲(chǔ)三個(gè)同學(xué)的計(jì)算機(jī)成績(jī)。 前面章節(jié)中處理的變量都是在程序的聲明部分定義的變量,在程序編譯時(shí)分配存儲(chǔ)單元,是靜態(tài)分配方式。這些存儲(chǔ)單元一經(jīng)分配,在它的生存期內(nèi)是固定不變的。 (閱讀書(shū)中程序) 2.結(jié)構(gòu)體類(lèi)型作為函數(shù)的返回值類(lèi)型 其一般定義形式: 結(jié)構(gòu)體類(lèi)型名 函數(shù)名 (形參表 ) { 函數(shù)體 } 例 ( p168) 結(jié)構(gòu)體與函數(shù) 鏈表 C語(yǔ)言中,變量存儲(chǔ)空間的分配分為靜態(tài)分配和動(dòng)態(tài)分配兩種方式。這時(shí)由實(shí)參傳遞給函數(shù)形參的只是地址,從而減少了時(shí)間和空間的開(kāi)銷(xiāo)。 通過(guò)結(jié)構(gòu)體變量的整體傳遞可以實(shí)現(xiàn)函數(shù)參數(shù)的傳遞,但這要將結(jié)構(gòu)體變量的全部成員逐個(gè)傳送,特別是成員為數(shù)組時(shí)將會(huì)使傳送的時(shí)間和空間開(kāi)銷(xiāo)很大,嚴(yán)重地降低了程序的效率。注意,實(shí)參與形參必須是相同結(jié)構(gòu)體類(lèi)型的變量。 ( 2) 以結(jié)構(gòu)體變量作為參數(shù),直接傳遞結(jié)構(gòu)體變量的值。 ? 例 用指向結(jié)構(gòu)體數(shù)組的指針處理例 (按學(xué)號(hào)順序整理輸出學(xué)生情況登記表。 ? 例如: struct student *p,a[5]。a。 結(jié)構(gòu)體指針變量的定義 結(jié)構(gòu)體指針變量的定義形式如下: 結(jié)構(gòu)體類(lèi)型名 *指針變量名; 例如: struct student *p,a。 結(jié)構(gòu)體指針 ? 結(jié)構(gòu)體指針變量 :如果用一個(gè)指針變量指向一個(gè)結(jié)構(gòu)體變量,即存儲(chǔ)該結(jié)構(gòu)體變量所占據(jù)的內(nèi)存單元的起始地址,則該指針變量稱(chēng)為結(jié)構(gòu)體指針變量。 char addr[30]。 char sex。 ? 分析如下: 定義學(xué)生類(lèi)型及學(xué)生數(shù)組 : 輸入學(xué)生信息 輸出學(xué)生信息 (程序由學(xué)生和老師共同完成) struct student { int num。 },… }。F39。F39。 char addr[30]。 char sex。 例如: struct student { int num。a[0])。a[0].num)。 a[3]= a[0] 。a[0].age)。a[0].sex)。 gets(a[0].name)。 scan
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1