欢迎来到天天文库
浏览记录
ID:34541109
大小:26.42 KB
页数:8页
时间:2019-03-07
《天大《数据结构》学习笔记二new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据结构—学习笔记二主题:《数据结构》学习笔记内容:《数据结构》学习笔记二——线性表一、最简单的数据结构——数组1、C语言中的数组:1.1定义:例如intv[10];charu[15];在C语言中数组的下标一律从0开始。1.2使用:例如v[8]=9;u[6]=‘e’;1.3本课程的约定:数组的长度为n+1;从a[0]到a[n]但是其中的a[0]一般不使用。2、数组的输入与输出:2.1输入:for(i=1;i<=10;i++)scanf(”%d”,&v[i]);2.2输出:for(i=1;i<=10;i++)printf
2、(”%d”,v[i]);3、应用举例:3.1编程:在已知数组中查找某已知元;如找到,打印’Yes’;否则,打印’No’。(1).请判断下面程序的正确性:{⋯⋯for(i=1;i<=n;i++)if(u[i]==x)printf(“yes”);elseprintf(“No”);}(2).改正上述程序,如下:{⋯⋯flag=0;for(i=1;i<=n;i++)if(u[i]==x)flag=1;if(flag==1)printf(“Yes”);elseprintf(“No”);}此程序是正确的,但并非完美。(3).请看下
3、面的程序:{⋯⋯i=1;while((i<=n)&&(u[i]!=x))数据结构—学习笔记二i++;if(i<=n)printf(“Yes”);elseprintf(“No”);}3.2应用:在有序数组中的第i元之前插入一元。(i=5,n=8){⋯⋯for(j=n;j>=i;j--)vv[j+1]=v[j];[0]1212v[i]=x;[1]1313n++;[2]}21212424x:252825302842307742[8]773.3编程:在有序数组中删除第i元。(i=4,n=8){vfor(j=i+1;j<=n;j
4、++)v[j-1]=v[j];1212n--;1313}2121i→242828303042427777二、数组的应用1、编程:在已知数组中求其最小值及位置。v6498357{⋯⋯min=v[1];pos=1;for(i=2;i<=n;i++)if(v[i]5、d”);w=x;i=1;while(w!=0){r=w%2;w=(int)(w/2);a[i]=r;i++;}for(j=i-1;j>=1;j--)printf(“%d”,a[j]);}3、选择排序:3.1实例:3.2构思:for(i=1;i<=n-1;i++){①在(i,n)的范围内选最小值记作a[k].②将a[i]与a[k]互换。}3.3程序:{⋯⋯for(i=1;i<=n-1;i++){k=i;for(j=i+1;j<=n;j++)if(a[j]6、[k];a[k]=t;}}}4、总结:在数组这部分中我们重点复习for语句。众所周知,程序设计的灵魂是“循环与判断”即for、while语句和if语句。5、课后上机:编程:在已知的字符数组中,请统计各字符出现的次数。数据结构—学习笔记二三、二维数组-矩阵1、C语言中的二维数组:1.1定义:intu[3][2];intv[2][3];1.2使用:u[0][1]=7;v[1][2]=6;C语言中二维数组的行下标、列下标都从0开始。二维数组的元素是按行存放。1.3本课程的约定:行数为m+1,列数为n+1;第[0]行与第[0]7、列一般不用。2、二维数组的输入与输出:2.1输入:for(i=1;i<=m;i++)for(j=1;j<=n;j++)scanf(“%d”,&v[i][j]);2.2输出:for(i=1;i<=m;i++){for(j=1;j<=n;j++)printf(“%d”,v[i][j])printf(“”)}3、矩阵相加:3.1条件:两个矩阵的行数与列数均相同。3.2程序:{⋯⋯for(i=1;i<=m;i++)for(j=1;j<=n;j++)w[i][j]=u[i][j]+v[i][j]}4、矩阵相乘:4.1条件:第8、一个矩阵的列数等于第二个矩阵的行数。4.2程序:{⋯⋯for(i=1;i<=m;i++)for(j=1;j<=k;j++){s=0;for(t=1;t<=n;t++)s=s+u[i][t]*v[t][j];w[i][j]=s;}}5、课后练习:编程:求已知矩阵的最大值、最小值及其相应的位置。数据结构—学习笔记二四、矩阵的应用1、报
5、d”);w=x;i=1;while(w!=0){r=w%2;w=(int)(w/2);a[i]=r;i++;}for(j=i-1;j>=1;j--)printf(“%d”,a[j]);}3、选择排序:3.1实例:3.2构思:for(i=1;i<=n-1;i++){①在(i,n)的范围内选最小值记作a[k].②将a[i]与a[k]互换。}3.3程序:{⋯⋯for(i=1;i<=n-1;i++){k=i;for(j=i+1;j<=n;j++)if(a[j]6、[k];a[k]=t;}}}4、总结:在数组这部分中我们重点复习for语句。众所周知,程序设计的灵魂是“循环与判断”即for、while语句和if语句。5、课后上机:编程:在已知的字符数组中,请统计各字符出现的次数。数据结构—学习笔记二三、二维数组-矩阵1、C语言中的二维数组:1.1定义:intu[3][2];intv[2][3];1.2使用:u[0][1]=7;v[1][2]=6;C语言中二维数组的行下标、列下标都从0开始。二维数组的元素是按行存放。1.3本课程的约定:行数为m+1,列数为n+1;第[0]行与第[0]7、列一般不用。2、二维数组的输入与输出:2.1输入:for(i=1;i<=m;i++)for(j=1;j<=n;j++)scanf(“%d”,&v[i][j]);2.2输出:for(i=1;i<=m;i++){for(j=1;j<=n;j++)printf(“%d”,v[i][j])printf(“”)}3、矩阵相加:3.1条件:两个矩阵的行数与列数均相同。3.2程序:{⋯⋯for(i=1;i<=m;i++)for(j=1;j<=n;j++)w[i][j]=u[i][j]+v[i][j]}4、矩阵相乘:4.1条件:第8、一个矩阵的列数等于第二个矩阵的行数。4.2程序:{⋯⋯for(i=1;i<=m;i++)for(j=1;j<=k;j++){s=0;for(t=1;t<=n;t++)s=s+u[i][t]*v[t][j];w[i][j]=s;}}5、课后练习:编程:求已知矩阵的最大值、最小值及其相应的位置。数据结构—学习笔记二四、矩阵的应用1、报
6、[k];a[k]=t;}}}4、总结:在数组这部分中我们重点复习for语句。众所周知,程序设计的灵魂是“循环与判断”即for、while语句和if语句。5、课后上机:编程:在已知的字符数组中,请统计各字符出现的次数。数据结构—学习笔记二三、二维数组-矩阵1、C语言中的二维数组:1.1定义:intu[3][2];intv[2][3];1.2使用:u[0][1]=7;v[1][2]=6;C语言中二维数组的行下标、列下标都从0开始。二维数组的元素是按行存放。1.3本课程的约定:行数为m+1,列数为n+1;第[0]行与第[0]
7、列一般不用。2、二维数组的输入与输出:2.1输入:for(i=1;i<=m;i++)for(j=1;j<=n;j++)scanf(“%d”,&v[i][j]);2.2输出:for(i=1;i<=m;i++){for(j=1;j<=n;j++)printf(“%d”,v[i][j])printf(“”)}3、矩阵相加:3.1条件:两个矩阵的行数与列数均相同。3.2程序:{⋯⋯for(i=1;i<=m;i++)for(j=1;j<=n;j++)w[i][j]=u[i][j]+v[i][j]}4、矩阵相乘:4.1条件:第
8、一个矩阵的列数等于第二个矩阵的行数。4.2程序:{⋯⋯for(i=1;i<=m;i++)for(j=1;j<=k;j++){s=0;for(t=1;t<=n;t++)s=s+u[i][t]*v[t][j];w[i][j]=s;}}5、课后练习:编程:求已知矩阵的最大值、最小值及其相应的位置。数据结构—学习笔记二四、矩阵的应用1、报
此文档下载收益归作者所有