資源描述:
《數(shù)據(jù)結(jié)構(gòu) 第01講:預(yù)備知識(shí).ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在PPT專區(qū)-天天文庫(kù)。
1、C語(yǔ)言回顧主要內(nèi)容:數(shù)組指針枚舉結(jié)構(gòu)體文件包含、宏、類型定義動(dòng)態(tài)內(nèi)存分配基本輸入輸出定義:類型說(shuō)明符數(shù)組名[常量表達(dá)式];inta[10];一維數(shù)組引用:數(shù)組名[下標(biāo)]下標(biāo)可以是整型常量、整型變量或整型表達(dá)式。下標(biāo)起始:從0開(kāi)始;要注意使用時(shí)下標(biāo)不要越界;a[0]=a[5]+a[7]-a[2*3]i=3;a[i]=a[i-1]+a[i-2];初始化:inta[10]={0,1,2,3,4,5,6,7,8,9};inta[10]={0,1,2,3,4};inta[]={1,2,3,4,5};一維數(shù)組在內(nèi)存中的存放例如:floatmark[100];mark[0]mark[1]mar
2、k[2]mark[3]...mark[99]86.592.077.552.0...94.0低地址高地址定義:基類型*指針變量名;int*p1,*p2,*i_point;指針引用:兩種運(yùn)算符:&、*inti,*p;p=&i;*p=3;初始化:inti,*p=&i,j,*q;q=&j;指針變量在使用之前必須初始化——使得指針變量指向一個(gè)有效的地址變量的地址:起始地址、大小、存儲(chǔ)格式指針變量intn=320;int*p=&n;*p=450;說(shuō)明:p的值為&n(n的地址)*p與變量n等價(jià)舉例:n200032032002000p……指針變量使用前必須初始化?。。∶杜e枚舉類型定義的一般形式:
3、enum枚舉名{枚舉常量取值表};enum是關(guān)鍵字;枚舉名和枚舉常量是標(biāo)識(shí)符;枚舉常量之間用逗號(hào)分隔。例如:enumcolor1{blue,green,red};enumweekday{Sun,Mon,Tue,Wed,Thu,Fri,Sat};枚舉類型實(shí)際上是一個(gè)整型符號(hào)常量的集合,每一個(gè)枚舉符都對(duì)應(yīng)著一個(gè)整數(shù)值Sun,Mon~Sat的整型值依次為:0,1,2,3,4,5,6,7類型聲明:struct結(jié)構(gòu)體名{成員表列};變量定義:(1)先聲明結(jié)構(gòu)體類型再定義變量名(2)在聲明類型的同時(shí)定義變量(3)直接定義結(jié)構(gòu)體類型變量,不出現(xiàn)結(jié)構(gòu)體名。變量的引用:student1.num=1
4、0010;成員(分量)運(yùn)算符“.”結(jié)構(gòu)體數(shù)組和指針(*p).成員名等價(jià)于p->成員名指向運(yùn)算符“->”結(jié)構(gòu)體enumSex{nan,nv};structStudent{charname[10];intnum;Sexsex;}stu[5],*s;s=stu;strcpy(s->name,“zhangsan”);s->num=10001;文件包含、宏、類型定義#include#definePI3.1415926#definemax(a,b)((a)>(b)?(a):(b))typedefintLong_int[3];typedefstruct{charname[10
5、];intnum;}Student,*PStudent;例:對(duì)10個(gè)整數(shù)排序#includevoidmain(){inta[10];inti,j,t;printf(″輸入10個(gè)整數(shù):″);for(i=0;i<10;i++)scanf("%d",&a[i]);printf("");動(dòng)態(tài)內(nèi)存分配for(j=0;j<9;j++)for(i=0;i<9-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];ai+1]=t;}printf(″排序后的數(shù)為:″);for(i=0;i<10;i++)printf(″%d″,a[i]);p
6、rintf(″″);}/*程序結(jié)束*/程序運(yùn)行結(jié)果如下:input10numbers:10481265-76100-45123↙thesortednumbers:-76-4501481265100123問(wèn)題:如果待排序的數(shù)個(gè)數(shù)事先未知,如何作?問(wèn)題:如果待排序的數(shù)個(gè)數(shù)事先未知,如何作?#includevoidmain(){inta[100];//事先定義一個(gè)足夠大的數(shù)組存數(shù)intn,i,j,t;printf("輸入待排序的整數(shù)的個(gè)數(shù):");scanf("%d",&n);printf("輸入%d個(gè)整數(shù):",n);for(i=0;i7、f("%d",&a[i]);printf("");……………………for(j=0;ja[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf(″排序后的數(shù)為:″);for(i=0;i