復(fù)合數(shù)據(jù)類(lèi)型(共38張PPT)_第1頁(yè)
復(fù)合數(shù)據(jù)類(lèi)型(共38張PPT)_第2頁(yè)
復(fù)合數(shù)據(jù)類(lèi)型(共38張PPT)_第3頁(yè)
復(fù)合數(shù)據(jù)類(lèi)型(共38張PPT)_第4頁(yè)
復(fù)合數(shù)據(jù)類(lèi)型(共38張PPT)_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第7章復(fù)合數(shù)據(jù)類(lèi)型和類(lèi)型定義結(jié)

構(gòu)

類(lèi)

型聯(lián)

類(lèi)

型枚

類(lèi)

型類(lèi)

義7.1

結(jié)構(gòu)類(lèi)型(復(fù)習(xí)引入)現(xiàn)實(shí)生活中,每個(gè)事物都有若干個(gè)屬性,且

類(lèi)

。例如,學(xué)生成績(jī)登記表,表中每個(gè)學(xué)生都有學(xué)號(hào)、姓名、總分和名次等屬性。其中學(xué)號(hào)用長(zhǎng)整型表示;姓名用字符串表示;總分用浮點(diǎn)數(shù)表示;名次用整數(shù)表示。對(duì)于這樣的數(shù)據(jù)形式,可以用結(jié)構(gòu)體類(lèi)型

來(lái)描述。7.1

結(jié)構(gòu)定義、引用和初始化一

、

結(jié)構(gòu)類(lèi)型定義的一般形式:

P229struct

結(jié)構(gòu)標(biāo)識(shí)符{數(shù)據(jù)類(lèi)型成員名1;數(shù)據(jù)類(lèi)型成員名2;數(shù)據(jù)類(lèi)型成員名n;};其中:struct是關(guān)鍵字,結(jié)構(gòu)標(biāo)識(shí)符和各成員由用戶(hù)自行命名;關(guān)鍵字

struct連同其后的結(jié)構(gòu)標(biāo)識(shí)符一起稱(chēng)為結(jié)構(gòu)類(lèi)型名或結(jié)構(gòu)名;各成

員的定義語(yǔ)句放在花括號(hào)中構(gòu)成復(fù)合語(yǔ)句,花括號(hào)后面的分號(hào)是

整個(gè)定義語(yǔ)句的結(jié)尾。用

把、不、同類(lèi)型

數(shù)

據(jù)

個(gè)

——構(gòu)造出新的數(shù)據(jù)類(lèi)型structaccount{

longid;charname[20];structdate

Date;dateyear;month;day;struct{

intint

int例如定義一個(gè)日期的結(jié)構(gòu)體類(lèi)型:例

個(gè)

戶(hù)

結(jié)

構(gòu)

類(lèi)

:float

money;struct

stuchar

num[5],

name[10],int

age;float

score;char

speciality[20];};結(jié)構(gòu)類(lèi)型定義擋遠(yuǎn)結(jié)構(gòu)的組織形式,確見(jiàn)了該類(lèi)型的內(nèi)存分

配模式,但不分配內(nèi)存!二

、結(jié)構(gòu)類(lèi)型存儲(chǔ)模式:

P230例sex;內(nèi)存分配模式說(shuō)明:P230●

結(jié)構(gòu)體成員的類(lèi)型可以是簡(jiǎn)單類(lèi)型、數(shù)組類(lèi)型或者是結(jié)構(gòu)體類(lèi)

數(shù)

據(jù)

類(lèi)

型●

結(jié)構(gòu)體類(lèi)型的定義只是描述結(jié)構(gòu)體的組織形式,并沒(méi)

有分配一段內(nèi)存單元來(lái)存放各數(shù)據(jù)項(xiàng)規(guī)員。只有定義

了這種類(lèi)型的變量,系統(tǒng)才為變量分配內(nèi)存空間,

占據(jù)存儲(chǔ)單元?!?/p>

結(jié)構(gòu)體類(lèi)型定義可以在函數(shù)的內(nèi)部,其作用域僅限于該函數(shù)內(nèi)部;也可以定義在函數(shù)的外部,其作用域是從定義處開(kāi)始到本文件結(jié)束

?!?/p>

在定義結(jié)構(gòu)體類(lèi)型時(shí),數(shù)據(jù)類(lèi)型相同的成員可以在

一行中說(shuō)明,成員間用逗號(hào)分開(kāi)。三、

結(jié)構(gòu)體類(lèi)型變量、結(jié)構(gòu)數(shù)組和結(jié)構(gòu)指針的定義:

P231某個(gè)結(jié)構(gòu)體類(lèi)型一經(jīng)定義

就可以指明該種結(jié)構(gòu)體的具體對(duì)象,即定義該種類(lèi)型的

。定

結(jié)

構(gòu)

類(lèi)

:●

先定義結(jié)構(gòu)體類(lèi)型,再定義該種類(lèi)型的變

?!?/p>

在定義結(jié)構(gòu)體類(lèi)型的同時(shí)定義結(jié)構(gòu)體變量?!?/p>

直接定義結(jié)構(gòu)體類(lèi)型變量。1、

結(jié)構(gòu)類(lèi)型的作用域應(yīng)用該類(lèi)型定義變量或應(yīng)用該類(lèi)型變量的有效位置(1)局部結(jié)構(gòu)類(lèi)型的作用域函數(shù)名(

)struct

stul局部結(jié)構(gòu)類(lèi)型作用域從定義處至該函數(shù)結(jié)束從定義處開(kāi)始,直到其所在源程序文件結(jié)束。{.…};函數(shù)名(){

……(2)全局結(jié)構(gòu)類(lèi)型的作用域全局結(jié)構(gòu)類(lèi)型作用域struct

stu2三、

結(jié)構(gòu)變量、結(jié)構(gòu)數(shù)組、結(jié)構(gòu)指針的定義(1)先定義結(jié)構(gòu)類(lèi)型,再進(jìn)行變量定義一般形式

struct

結(jié)構(gòu)

名成員列表};struct

結(jié)構(gòu)名

變量名表列;struct

student

define

STUDENT

struct

student{

int

num;char

name[20

{

int

num;char

sex;

char

name[20];char

sex;int

age;

int

age;};

};struct

student

s

STUDENT

st1,s[5],*p;STUDENTdefine

STUDENT

structSTUDENTint

num;char

name[20];char

sex;int

age;};STUDENT

st1,s[5],*p;思考:結(jié)構(gòu)指針p所占空間大小是多少個(gè)字節(jié)?4

個(gè)

節(jié)結(jié)構(gòu)數(shù)組s[5]的內(nèi)存分配形式為:1ullnaimeSeXagenu1lnaineSeXagestudent29B(2)定義結(jié)構(gòu)類(lèi)型的同時(shí)定義變量一般形式:struct

結(jié)構(gòu)名成員列表表列;struct

student{

int

num;char

name[20];char

sex;int

age;}stul,stu2[2],*p;例變量名表列;例

struct{

int

num;char

name[20];char

sex;int

age;}st1,s[5],*p;(

3

)

應(yīng)

無(wú)

結(jié)

構(gòu)

類(lèi)

量一

:struct成員列表用無(wú)名結(jié)構(gòu)直接定義

變量只能一次。注意:這

略了結(jié)構(gòu)體名,因此

以后不能用它再來(lái)

。說(shuō)

:結(jié)構(gòu)體變量的定義在函數(shù)的數(shù)據(jù)說(shuō)明部分進(jìn)行,也可以在函數(shù)的外部定義。但都必須是類(lèi)型定義在前,變量定義在

。結(jié)構(gòu)體變量一經(jīng)定義,在程序運(yùn)行時(shí),系統(tǒng)將按照結(jié)

構(gòu)

類(lèi)

時(shí)

內(nèi)

結(jié)

構(gòu)

定的存儲(chǔ)單元。一個(gè)結(jié)構(gòu)體變量在內(nèi)存中占用存儲(chǔ)空間的實(shí)際字節(jié)數(shù),就

結(jié)

構(gòu)

類(lèi)

時(shí)

個(gè)

項(xiàng)

節(jié)

數(shù)

,可以利用sizeof

運(yùn)算符求出一個(gè)結(jié)構(gòu)體類(lèi)型數(shù)據(jù)的長(zhǎng)度。(4)嵌套結(jié)構(gòu)定義(a)

當(dāng)結(jié)構(gòu)類(lèi)型的成員屬于一復(fù)雜類(lèi)型時(shí),稱(chēng)該結(jié)構(gòu)類(lèi)型為嵌套結(jié)構(gòu)。(b)

嵌套結(jié)構(gòu)有以下兩種形式:例

struct

date{

int

month;int

day;例

struct

studentint

num;char

name[20];structdate

{

int

month;int

day;int

year;}birthday;}stu;numnamebirthdamonthdayyearchar

name[20];struct

date

birthday;

}stu;int

year;

};struct

student{

int

num;(5)

結(jié)

構(gòu)

化結(jié)構(gòu)體類(lèi)型變量在定義時(shí)也可以直接對(duì)其進(jìn)行初始化。可以在主程序中定義并直接初始化結(jié)構(gòu)體變量。P237【例7.2】一個(gè)汽車(chē)檔案中包括汽車(chē)的編號(hào)、顏色和型號(hào)。輸入一個(gè)

汽車(chē)編號(hào),由find()函數(shù)進(jìn)行查找,根據(jù)查找結(jié)果輸出查找到汽車(chē)的

信息。#include

<stdio.h>struct

sample{

int

num;char

color;char

type;}

car[]={

101,'G','c',210,'Y','m',105,'R',T,220,'B','s',308,'W','b',0,\0',^\0'};、結(jié)構(gòu)成員的訪問(wèn)一

引用結(jié)構(gòu)體變量的成員項(xiàng):一般情況下對(duì)結(jié)構(gòu)體變量的使用,是用結(jié)構(gòu)體的各個(gè)成

項(xiàng)

來(lái)

運(yùn)

。引用結(jié)構(gòu)體變量中的成員項(xiàng)的形式為:結(jié)

構(gòu)

.

項(xiàng)

名例

2

0

2

1

5

1

2

給struct

date型

量Date

l

可表示成:Date1.

year=2021;Date1.

month=5;Date1.

day=12;說(shuō)

:“.

”是一個(gè)運(yùn)算符,表示對(duì)結(jié)構(gòu)體變量的成員進(jìn)行訪問(wèn)運(yùn)算,它的優(yōu)先級(jí)為最高級(jí),結(jié)合方向是從

左到右。結(jié)構(gòu)體成員項(xiàng)是結(jié)構(gòu)體中的一個(gè)數(shù)據(jù),對(duì)其進(jìn)行何種運(yùn)算是由它的類(lèi)型決定,

允許參加運(yùn)算的種類(lèi)與同類(lèi)型的簡(jiǎn)單變量的種類(lèi)相同。如

個(gè)

結(jié)

構(gòu)

個(gè)

結(jié)

構(gòu)

類(lèi)

量則要通過(guò)兩個(gè)“.”運(yùn)算符來(lái)訪問(wèn)該結(jié)構(gòu)成員的結(jié)構(gòu)成員。如

語(yǔ)

:wang=zhang;注意:不

語(yǔ)

組常

個(gè)

結(jié)

構(gòu)

體變量。如下面的賦值語(yǔ)句是不合法的:二、

一個(gè)結(jié)構(gòu)體變量作為一個(gè)整體來(lái)引用。C語(yǔ)言允許兩個(gè)相同類(lèi)型的結(jié)構(gòu)體變量之間相互賦值,這

結(jié)

構(gòu)

過(guò)

個(gè)

結(jié)

構(gòu)

成員項(xiàng)的值賦給另一個(gè)結(jié)構(gòu)體變量的相應(yīng)部分。wang=【例7.1x】

結(jié)構(gòu)變量的初始化struct

studentchar

number[5],*name;char

sex;struct

date{

int

year;

int

month;

int

day;}birthday;

float

score;char

speciality[11];char

school[31];};main()s

truct

student

st1={'1001","Liming",'0',1983,10,25,573,"Computer","3th

High

School,Beijing"'};三

、

結(jié)

構(gòu)

數(shù)

結(jié)

構(gòu)

針(1)、結(jié)構(gòu)體數(shù)組:當(dāng)數(shù)組中的元素是結(jié)構(gòu)體類(lèi)型的

就構(gòu)成了結(jié)構(gòu)體數(shù)組。結(jié)構(gòu)體數(shù)組是具有相同結(jié)

構(gòu)

類(lèi)

。(2)、結(jié)構(gòu)體指針指

結(jié)

構(gòu)體

類(lèi)

稱(chēng)

結(jié)

構(gòu)體

的指針或結(jié)構(gòu)體指針

。訪

問(wèn)

結(jié)

構(gòu)

結(jié)

構(gòu)

變量

的成員可以采用以下兩種方法:方法1:(*結(jié)構(gòu)體指針名入成員項(xiàng)名方法2:

結(jié)構(gòu)體指針名->成員頁(yè)名struct

student

s[5];例如:

(*s).name,

(*s).sex,

(*s).age或

s->name,

(s+1)->sex,

s[2].

segstruct

student

s[5],*p=s;例如:

(*p).name,

(*p).sex,

(*p).age或者

p->name,

Ip->sex,

p->sex7.13結(jié)構(gòu)變量、結(jié)構(gòu)數(shù)組的賦值、輸入和輸出

7.14結(jié)構(gòu)類(lèi)型數(shù)據(jù)在函數(shù)間的傳遞(1)P236

【例7.1】結(jié)構(gòu)變量的賦值、輸入和輸出(2)結(jié)構(gòu)體數(shù)組的賦值、輸入和輸出P241

【例7.6】建立一個(gè)小通訊錄:input()用于輸入通訊

錄數(shù)據(jù),

display()用于輸出通訊錄,主程序通過(guò)結(jié)構(gòu)

數(shù)組名調(diào)用input()和display(。P241

【例7.6】建立一個(gè)小通訊錄:

input()用于輸入通訊錄數(shù)據(jù),display()用于輸出通訊錄,主程序通過(guò)結(jié)構(gòu)數(shù)組名調(diào)用

input()和displayO。#include

<stdio.h>#define

MAX10struct

telephone{char

name[20];

char

mobile[12];

char

phone[12];};input(struct

telephone

*p){int

i;for(i=0;i<MAX;i++){printf("Name?");gets(p->name);if

(p->name[0]==^\0')

return(i);/*提前結(jié)束輸入*printf("Mobile?");scanf("%*c%s",p->mobile);printf("Telephone?");scanf("%*c%s%*c",p->phone);};return

MAX;}void

display(struct

telephone

*p,int

n){

int

i;for(i=0;i<n;i++,p++)printf("%-20s%-

12s%-

12s\n",p->name,p->mobile,p->phone);main(){struct

telephonetx[MAX];

int

n;n=input(tx);display(tx,n);/*輸出通訊錄*/一、

返回值方式被調(diào)用函數(shù)可以通過(guò)返回一個(gè)結(jié)構(gòu)變量或一個(gè)結(jié)構(gòu)指

針的方式向調(diào)用函數(shù)傳遞結(jié)構(gòu)型數(shù)據(jù)。返回結(jié)構(gòu)變量

的函數(shù)稱(chēng)為結(jié)構(gòu)型函數(shù),屬于基本類(lèi)型函數(shù);返回結(jié)

構(gòu)指針的函數(shù)稱(chēng)為結(jié)構(gòu)指針型函數(shù),屬于指針型函數(shù)o①

結(jié)構(gòu)型函數(shù)說(shuō)明或定義結(jié)構(gòu)型函數(shù)的一般形式為:struct

結(jié)構(gòu)標(biāo)識(shí)符函數(shù)名(形參表)例如,struct

student

function(int

x,int

y){......}就定義了一個(gè)struct

student結(jié)構(gòu)類(lèi)型的函數(shù),它可以將一個(gè)

結(jié)構(gòu)變量返回到調(diào)用函數(shù)。②

結(jié)構(gòu)指針型函數(shù)說(shuō)明或定義結(jié)構(gòu)指針型函數(shù)的一般形式為:struct結(jié)構(gòu)名*函數(shù)名(形參表)例如,struct

student

*function(int

x,int

y){

......}定義了一個(gè)結(jié)構(gòu)指針型函數(shù)function(),它可以將一

個(gè)結(jié)構(gòu)指針?lè)祷氐秸{(diào)用函數(shù)。結(jié)構(gòu)類(lèi)型數(shù)據(jù)在函數(shù)間的傳遞1、用結(jié)構(gòu)變量的成員作參數(shù)—

值傳遞2

、用指向結(jié)構(gòu)變量或數(shù)組的指針作參數(shù)—

地址傳遞3

、用結(jié)構(gòu)變量作參數(shù)--多值傳遞(效率低)小結(jié)結(jié)構(gòu)體聲明及結(jié)構(gòu)體類(lèi)型變量的定義、初始化(a)結(jié)構(gòu)體類(lèi)型的定義形式注意的問(wèn)題:①

每個(gè)成員都必須有自己的數(shù)據(jù)類(lèi)型,位置上連續(xù)同類(lèi)型的結(jié)構(gòu)成員可

以出現(xiàn)在一條語(yǔ)句中,并共用同一個(gè)類(lèi)型關(guān)鍵字。②

結(jié)構(gòu)類(lèi)型的成員可以是基本數(shù)據(jù)類(lèi)型的變量、數(shù)組或指針,也可以是已定義

結(jié)構(gòu)類(lèi)型的變量、數(shù)組或指針。③

結(jié)構(gòu)成員可以和程序中其他標(biāo)識(shí)符同名,也可以和另一個(gè)結(jié)構(gòu)的成員同名。④

結(jié)構(gòu)類(lèi)型定義的位置,可以在函數(shù)內(nèi)部,也可以在函數(shù)外部。在

函數(shù)內(nèi)部定義的結(jié)構(gòu)類(lèi)型,只能在函數(shù)內(nèi)部使用。在函數(shù)外部定

義的結(jié)構(gòu)類(lèi)型,其有效范圍是從定義處開(kāi)始,直到它所在的源程

序文件結(jié)束。(b)結(jié)構(gòu)體變量的說(shuō)明——三種方法。(c)結(jié)構(gòu)體變量的初始化小結(jié)結(jié)構(gòu)體變量成員的引用(a)同一類(lèi)型的結(jié)構(gòu)體變量可相互賦值(b)引用結(jié)構(gòu)體成員(在無(wú)嵌套的情況下,訪問(wèn)結(jié)構(gòu)成員的方法)若已定義了一個(gè)結(jié)構(gòu)變量及指向它的指針,可以用以下三種形式訪

問(wèn)該結(jié)構(gòu)變量的成員:①結(jié)構(gòu)變量名.成員名、②結(jié)構(gòu)指針名->成員名、③(*結(jié)構(gòu)指針名

).成員名(c)結(jié)構(gòu)體變量的賦值、輸入和輸出(d)結(jié)構(gòu)數(shù)組的賦值、輸入和輸出

(e)結(jié)構(gòu)類(lèi)型數(shù)據(jù)在函數(shù)間的傳遞用遞歸結(jié)構(gòu)處理鏈表1.遞歸結(jié)構(gòu)如果一個(gè)結(jié)構(gòu)類(lèi)型的某些成員是該結(jié)構(gòu)類(lèi)型的變量、數(shù)

組或指針,稱(chēng)之為遞歸結(jié)構(gòu),也叫自嵌套結(jié)構(gòu)。使用最

多的遞歸結(jié)構(gòu)是:結(jié)構(gòu)的一個(gè)成員是指同本結(jié)構(gòu)類(lèi)型的指針。例如:struct

node{int

data;struct

node

*next;這種遞歸結(jié)構(gòu)在處理諸如鏈表這樣數(shù)據(jù)結(jié)構(gòu)時(shí)特別有用2.鏈表的概念鏈表是一種很有用的動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu),單向鏈表是一種最簡(jiǎn)單

的鏈表,它由若干個(gè)節(jié)點(diǎn)首尾相接而成,每個(gè)節(jié)點(diǎn)有兩個(gè)域

:數(shù)據(jù)域data存放數(shù)據(jù),指針域next存放下一節(jié)點(diǎn)的首地

址。鏈頭指針

節(jié)點(diǎn)1

節(jié)點(diǎn)2

節(jié)點(diǎn)3

鏈尾單向鏈表中的節(jié)點(diǎn)可用如下遞歸結(jié)構(gòu)來(lái)描述:struct

node{

int

data;struct

node

*next;};通過(guò)指針將各個(gè)節(jié)點(diǎn)鏈接起來(lái),就構(gòu)成單向鏈表。headdatanextdata

data

datanext

nextNLL3.動(dòng)態(tài)鏈表的基本操作動(dòng)態(tài)鏈表的特點(diǎn)是各節(jié)點(diǎn)所需要的存儲(chǔ)空間是用動(dòng)態(tài)內(nèi)存分

配的方式獲得的,每個(gè)節(jié)點(diǎn)都沒(méi)有名字,對(duì)鏈表的操作只

能通過(guò)指針進(jìn)行。動(dòng)態(tài)鏈表的主要操作包括建立鏈表、刪

除節(jié)點(diǎn)、插入節(jié)點(diǎn)和鏈表的輸出。①

建立鏈表建立鏈表的過(guò)程是先建立鏈表的頭節(jié)點(diǎn),并將該頭節(jié)點(diǎn)作為尾節(jié)點(diǎn),然后不斷增加新節(jié)點(diǎn),將新增的節(jié)點(diǎn)連接

在當(dāng)前尾節(jié)點(diǎn)的后面而作為新的尾節(jié)點(diǎn)。為此,需要設(shè)

置三個(gè)指針,

h指向鏈表的頭節(jié)點(diǎn),

p指向新建節(jié)點(diǎn),q

指向

尾節(jié)點(diǎn)。hdata

next

data

nextTp

(新建節(jié)點(diǎn))建立鏈表的算法(1)通過(guò)動(dòng)態(tài)內(nèi)存分配申請(qǐng)一段存儲(chǔ)空間存放頭節(jié)點(diǎn),將該存儲(chǔ)空

間的起始地址存放在指針h中,且其數(shù)據(jù)域和指針域均為空并使p

和q同時(shí)指向頭節(jié)點(diǎn),表示該節(jié)點(diǎn)既是頭節(jié)點(diǎn)、也

是當(dāng)前節(jié)點(diǎn)、又是尾節(jié)點(diǎn);(2)輸入一個(gè)數(shù)a;(3)若a為0,則進(jìn)入⑥;否則,進(jìn)入④;(4),再申請(qǐng)一段空間存放下一個(gè)新建節(jié)點(diǎn),起始地址存放在指

針p中,稱(chēng)之為p節(jié)點(diǎn)。將數(shù)a存入p節(jié)點(diǎn)的data域,并將p節(jié)點(diǎn)

的首地址存入q節(jié)點(diǎn)的next域,這樣,p節(jié)點(diǎn)就被鏈接在q節(jié)

點(diǎn)之后。再通過(guò)將首地址p存入指針q使新建節(jié)點(diǎn)成為新的

尾節(jié)點(diǎn)。(5)繼續(xù)輸入下一個(gè)數(shù)a,

返回③;(6)結(jié)束循環(huán),并在尾節(jié)點(diǎn)的next域放入NULL,

作為鏈表結(jié)束的標(biāo)記;(7)將鏈表的頭指針h返回調(diào)用函數(shù)。②

輸出鏈表輸出鏈表的過(guò)程是根據(jù)鏈表的頭節(jié)點(diǎn)找到下一個(gè)節(jié)點(diǎn),先輸

出其data域中的數(shù)據(jù),然后根據(jù)其next域中的地址,取出后繼節(jié)點(diǎn),輸出其data域中的數(shù)據(jù)。如此不斷選取下一個(gè)節(jié)點(diǎn),

直到鏈表末尾。輸出鏈表的算法(1)根據(jù)調(diào)用程序傳遞來(lái)的鏈表首地址找到該鏈表的頭節(jié)點(diǎn)1(2)由頭節(jié)點(diǎn)next域中的地址找到下一個(gè)節(jié)點(diǎn)p;(3)若節(jié)點(diǎn)p的next域中的地址值不是NULL,

則進(jìn)入下一步;否則,進(jìn)入⑤;(4),輸出節(jié)點(diǎn)p的data域中的數(shù)據(jù),并由該節(jié)點(diǎn)next域中的地址

找到下一個(gè)節(jié)點(diǎn),回到③;(5)返回調(diào)用函數(shù)。P244

【例7.7】先建立一個(gè)單向鏈表,將鍵盤(pán)輸入的整數(shù)1、2、

3、4、5、6、7、8、9、10依次存入該鏈表各個(gè)節(jié)點(diǎn)的數(shù)據(jù)

域中,當(dāng)輸入整數(shù)0時(shí),結(jié)束建立鏈表的操作。然后依次

輸出鏈表中的數(shù)據(jù),直到鏈表末尾。用一個(gè)結(jié)構(gòu)指針型

函數(shù)creatlist()來(lái)建立鏈表,以便將該鏈表的頭指針?lè)祷?/p>

調(diào)用函數(shù)。在函數(shù)creatlist()中先申請(qǐng)頭書(shū)點(diǎn)的存儲(chǔ)空間,

用指針h

存放該空間的首地址;然后不斷申請(qǐng)下一個(gè)節(jié)點(diǎn)的存

儲(chǔ)空間,其d

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論