C语言入门教程全第9章PPT课件
合集下载
c语言学习,c语言课件第09章
struct { char char char long long char };
addr 像这些对不同登记 name[20]; department[30] ;/*部门*/ 表的数据结构的描 address[30]; /*住址*/ 述类型称为结构体 box; /*邮编*/ phone; /*电话号码*/ 类型 email[30]; /*Email*/
9.2 结构体变量的引用与初始化
9.2.1 结构体类型变量的引用 引用结构体类型变量的一般形式为: 引用结构体类型变量的一般形式为: 结构体类型变量名 .成员名 其中“ 是成员(分量)运算符,它在所有运算符中优先级最高。 其中“.”是成员(分量)运算符,它在所有运算符中优先级最高。 说明: 说明: (1)结构体类型变量的各成员与相应的简单类型变量一样可以进行 (1)结构体类型变量的各成员与相应的简单类型变量一样可以进行 各种运算,例如: 各种运算,例如: student2.score[1]= student1.score[1]; sum=stud1.score[0]+stud1.score[1]+stud1.score[2]; (2)如果成员本身又属一个结构体类型 如果成员本身又属一个结构体类型, (2)如果成员本身又属一个结构体类型,则要用若干成员运算符 一级一级地找到最低的一级成员。 ,一级一级地找到最低的一级成员。只能对最低级的成员进行 赋值或存取以及运算。例如: 赋值或存取以及运算。例如: birthday.day=01;student1.birthday.month=10; student1. birthday.day=01;student1.birthday.month=10; student.birthday.year=2004; student.birthday.year=2004;
c语言教程第9章PPT课件
FILE
*fp;
fp是一个指向FILE类型结构体的指针变量,可以使fp指向一个文件的结构体变 量,从而通过该结构体变量中的文件信息能够访问该文件,也就是说,通过文件 指针变量能够找到与它相关的文件。如果有n个文件,一般应设n个指针(指向 FILE类型结构体的指针变量),使它们分别指向n个文件(确切地说,指向该文件的 信息结构体),以实现对文件的访问。
ASCII形式和二进制形式输出的不同:
例:
如果有一个整数10000,在内存中占2个字节,如果按 ASCII形式输出,
则占5个字节,而按二进制形式输出,在
磁盘上只占2个字节.如下图所示:
ASCII形式
00110001 00110000 00110000 00110000
00(111)0000 (0)
(0)
fputc函数和fgetc函数
也称putc函数和getc函数. 一、fputc函数把一个字符写到磁盘文件上去,其一般形式为
fputc ( ch, fp ); 其中ch是要输出的字符,它可以是一个字符常量,也可以是一个字符变量。fp是文件 指针变量,它从fopen函数得到返回值。 fputc函数也带回一个值:如果输出成功则返回值就是输出的字符:如果输出失败,则 返回一个EOF。EOF是在stdio.h文件中定义的符号常量,值为-1。
第6页/共43页
可以看出,在打开一个文件时,通知给编译系统以下三个信息: (1)需要打开的文件名,也就是准备访问的文件的 (2) 使用文件的方式(读还是写等)。 (3) 让哪一个指针变量指向被打开的文件。
名字。
第7页/共43页
使用文件方式如下表:
文件使用方式 “r” (只读) “w” (只写) “a” (追加) “rb” (只读) “wb” (只写) “ab” (追加) “r+” (读写) “w+” (读写) “a+” (读写) “rb+” (读写) “wb+” (读写) “ab+” (读写)
C语言PPT教程第九章
var=10; printf(“%d”,var); }
当参数var的值改变后, 原来调用位置的参数num 的值不会随之改变
}
16
函数的参数
• 把指针作为参数传递到函数——按地址传递
#include<stdio.h> void change(int *var); void main() {
void change(int *var) {
}
24
函数的返回值
• 返回语句
形式: return (表达式);
或
return 表达式;
或
return;
功能:函数的返回值是通过函数中的return语句获得的
说明:
若无return语句,遇 } 时,自动返回调用函数
• 可以有多个return语句
• 返回值只可以有一个
• 例:使用函数.c
25
函数的返回值
回顾
• 指针变量 • 指针运算符 • 指针与数组 • 内存分配
1
目标
• 掌握函数的结构 • 掌握函数声明和原型 • 按值传递 / 按地址传递 • 理解函数的作用域 • 掌握函数指针
2
函数
看一个C语言的示例
:例0.c
C语言是由函数组成的语言
每一个函数是一组代码块,完成某个特定功能
一个C语言程序至少有一个函数,且该函数必 须是主函数main() ,main()函数是唯一会自 动执行的函数,其它函数必须要调用才会执行
8
函数声明和定义
#include<stdio.h> void p();
函数声明
只有当其他函数放在 main()后时才需要,声明
的写法是函数第一行加
void main() {
当参数var的值改变后, 原来调用位置的参数num 的值不会随之改变
}
16
函数的参数
• 把指针作为参数传递到函数——按地址传递
#include<stdio.h> void change(int *var); void main() {
void change(int *var) {
}
24
函数的返回值
• 返回语句
形式: return (表达式);
或
return 表达式;
或
return;
功能:函数的返回值是通过函数中的return语句获得的
说明:
若无return语句,遇 } 时,自动返回调用函数
• 可以有多个return语句
• 返回值只可以有一个
• 例:使用函数.c
25
函数的返回值
回顾
• 指针变量 • 指针运算符 • 指针与数组 • 内存分配
1
目标
• 掌握函数的结构 • 掌握函数声明和原型 • 按值传递 / 按地址传递 • 理解函数的作用域 • 掌握函数指针
2
函数
看一个C语言的示例
:例0.c
C语言是由函数组成的语言
每一个函数是一组代码块,完成某个特定功能
一个C语言程序至少有一个函数,且该函数必 须是主函数main() ,main()函数是唯一会自 动执行的函数,其它函数必须要调用才会执行
8
函数声明和定义
#include<stdio.h> void p();
函数声明
只有当其他函数放在 main()后时才需要,声明
的写法是函数第一行加
void main() {
零基础学C语言教案第9章PPT课件
9.2 简洁循环语句——while和do while结构
• 前面的示例中已经用到了while结构,其基本结构形式为:
• while (表达式)
•{
• 循环结构体
•}
• 首先计算表达式的值,当表达式为真(非0)时,重复执行 循环体,直到表达式变为假(0),跳出while结构向下执 行。
• do while结构与while结构略有不同,其基本形式为:
9.3.2 表达式省略
• for循环结构中的初始化表达式,判断表达式和修正表达式 都是可选项,也就是说,可以省略,但每个表达式后的分 号不能省略,最极端的情况是:3个表达式都省略,形式如 下:
• for(; ; )
/*两个分号不能省略*/
•{
• ……
/*循环体*/
•}
• 这相当于;
• while( 1 )
概况二
点击此处输入相关文本内容 点击此处输入相关文本内容
概况三
点击此处输入相关文本内容 点击此处输入相关文本内容
9.1 构造循环
• 循环结构有两大要素:循环条件和循环体,当满 足某个条件时,重复执行某些动作,直到该条件 不再满足,这个表述很好地体现了循环条件和循 环体的关系。构造循环时,首先要明白要做什么, 即“循环体是什么”,这是和程序的目的相关的, 知道要干什么了还不够,还要明白什么时候开始 做,什么时候停,如果没有合理设定循环条件, 很容易造成程序死循环,甚至是资源耗尽导致电 脑死机。
第9章 一遍又一遍——循环结构
• 所谓“循环”,就是对某块代码段重复多次地执 行,循环结构是C语言程序书写中常用的一种重要 控制结构,C语言提供了3种循环结构,分别是 while结构、do while结构和for结构,本章将对 其展开讨论。
c语言教材第9章文件PPT教学课件
“w” ( 只 写 ) 为 输 出 打 开 一 文 本 文 件
“a” ( 追 加 ) 向 文 本 文 件 尾 加 数 据
“rb’ ( 只 读 ) 为 输 入 打 开 一 二 进 制 文 件
“wb” ( 只 写 ) 为 输 出 打 开 一 二 进 制 文 件
“ab” ( 追 加 ) 向 二 进 制 文 件 尾 加 数 据
运行结果:
test.txt 的内容是
3,4.50
} 2020/12/10
14
14
5. 文件定位
文件中有一个位置指针,指向当前读写的位置。 我们可以使用有关函数来改变其位置。
• 二进制文件:把内存中的数据按其在内存中的存 储形式原样输出到磁盘文件上。
4. 输入和输出方式
• 缓冲文件系统:系统自动在内存区为每一个正在
使用的文件名开辟一个缓冲区。从内存向磁盘输
出数据必须先送到内存的缓冲区中,装满缓冲区
后在一起送到磁盘中去。如果从磁盘向内存读入
数据,则一次从磁盘文件将一批数据
/* 文件操作模式 */ /* 下一个字符位置 */ /* 文件缓冲区位置 */
}FILE;
2020/12/10
7
7
2.文件类型指针
例: 定义一个FILE类型的数组
FILE -efile [-MAXFILE]; -MAXFILE: 数组元素个数,也就是可使用文件的
最大数目。
例:定义一个文件指针变量
“w b+ ’ ( 读 写 ) 为 读 /写 建 立 一 新 二 进 制 文 件
“ab+ ” ( 读 写 ) 为 读 /写 打 开 一 二 进 制 文 件
2020/12/10
11
11
C语言09章0912
阅读P260【例9.6】
9.4 用结构体变量和结构体指针作函数参数
一. 用结构体变量作函数参数 例如: void output(student x) { printf(“%d%s”, x.num,); }
void main() { student a={1001, “Li Ming”};
{ int num; char *name; char sex; float score;
}boy[5];
定义了一个结构数组boy,共有5个元素,boy[0]~boy[4]。 每个数组元素都具有struct stu的结构形式。对结构数组可以 作初始化赋值。
struct student { int num; char *name; char sex; float score; }boy[5]={ {101,"Li ping","M",45}, {102,"Zhang ping","M",62.5}, {103,"He fang","F",92.5}, {104,"Cheng ling","F",87}, {105,"Wang ming","M",58} };
};
struct Date{ int yy,mm,dd;
} birthday;
Student是用户自己定义的结构体类型名,即该结构体 名。
9.1.2 结构体变量的定义
1、先定义结构体类型,再定义变量
[struct] 结构体类型名 变量名列表;
struct Student {
int num; char name[20]; float score; };
9.4 用结构体变量和结构体指针作函数参数
一. 用结构体变量作函数参数 例如: void output(student x) { printf(“%d%s”, x.num,); }
void main() { student a={1001, “Li Ming”};
{ int num; char *name; char sex; float score;
}boy[5];
定义了一个结构数组boy,共有5个元素,boy[0]~boy[4]。 每个数组元素都具有struct stu的结构形式。对结构数组可以 作初始化赋值。
struct student { int num; char *name; char sex; float score; }boy[5]={ {101,"Li ping","M",45}, {102,"Zhang ping","M",62.5}, {103,"He fang","F",92.5}, {104,"Cheng ling","F",87}, {105,"Wang ming","M",58} };
};
struct Date{ int yy,mm,dd;
} birthday;
Student是用户自己定义的结构体类型名,即该结构体 名。
9.1.2 结构体变量的定义
1、先定义结构体类型,再定义变量
[struct] 结构体类型名 变量名列表;
struct Student {
int num; char name[20]; float score; };
c语言第9章教学ppt
分析:学习宏替换要注意以下几点: ⑴ 宏名一般习惯用大写字母,以便与变量名相区别; ⑵ 宏替换由编译程序预先进行;宏名用作代替一个字符串, 不作语法检查; ⑶ 宏替换范围是除用双引号引起来的字符串以外的所有宏 名字。 (4) 若替换后文本串中仍含有宏名字,将再次进行替换,直 到程序中不含宏名字为止。 (5) 宏定义不是C语句,所以不能在行尾加分号。否则,宏 展开时,会将分号作为字符串的1个字符,用于替换宏名。 ⑹ C语言允许宏定义出现在程序中函数外面的任何位置, 但一般情况下它总写在文件的开头。
答案:
#include <stdio.h> #define LETTER 1 main() { char str[20]=“C Language”, c; int i = 0; while ((c=str[i++])!=‘\0’) { #if LETTER if (c >= ‘a’ && c <= ‘z’) c = c-‘a’+‘A’; #else if (c >= ‘A’ && c <= ‘Z’) c = c-‘A’+‘a’; #endif printf(“%c”, c); } }
分析: (1)定义有参宏时,宏名与左圆括号之间不能留有 空格。否则,C编译系统将空格以后的所有字符 均作为替代字符串,而将该宏视为无参宏。 (2)有参宏的展开,只是将实参作为字符串,简 单地置换形参字符串,而不做任何语法检查。在 定义有参宏时,在所有形参外和整个字符串外, 均加一对圆括号。
4.输入一行字母,根据需要设置条件编译,使 之能将字母全改为大写输出,或全改为小写字 母输出 。
课堂练习
1、给出下面程序宏替换后的结果。 #define PI 3.1415926 #define R 3.0 #define L 2*PI*R #define S PI*R*R main() { printf("l=%f \ns=%f\n",L,S); }
C课件语言第09讲
printf("\n");
}
2019/11/2
Page 15
Program Design in C Language
9.3 字符串指针变量与字符数组
字符数组是由若干个元素组成,每个元素存放一 个字符;而字符串指针变量存放的是字符串中某 一个字符的地址。
赋值方式不同。字符数组只能对各个元素分别赋 值,而字符串指针变量只用赋给字符串的首地址 就可以了。 例如,下面的赋值是正确的:
2.利用格式符%s,可以一次输入、输出字符串。
%s:遇第一个空白符(空格、Tab、回车)结束输入,
遇第一个‘\0’结束输出。
例: char str[10]; scanf("%s",str ); printf("%s\n", str );
2019/11/2
输入:program 输出:program
Page 10
Program Design in C Language
利用字符串输入输出函数
C语言要求在使用字符串函数时,要包含头文件 stdio.h
1、字符串输入函数gets( );
作用:是将一个字符串输入到字符数组中,当遇 到第一个回车时结束输入
格式:gets(字符数组名);
gets( )函数同scanf( )函数一样,在读入一个
2019/11/2
Page 19
Program Design in C Language
9.3 字符串指针变量作为函数参数
例 连接两个字符串str1和str2,连接结果放在str1中
#include <stdio.h> void strlink(char *, char *); void main( )
c语言程序设计课件第9章
第9章 文件系统操作
本章要点:
文件系统控件的使用方法
文件常用语句及函数的使用方法 顺序文件的使用方法 随机文件的使用方法 二进制文件的使用方法
9.1 文件系统控件
9.1.1 驱动器列表框
(1)Drive属性
Drive属性用来返回和设置在驱动器列 表框中显示的驱动器 [对象.] Drive[=drive] 当Drive属性值发生变化时,即驱动器 列表框中的显示驱动器发生变化时, 都会引发此事件。
(4)其他属性
9.1 文件系统控件
(4)Click、DblClick事件
„单击输出文件名。 Sub File1_Click( ) MsgBox File1.FileName End Sub „双击执行可执行程序。 Sub File1_DblClick( ) ChDir Dir1.Path ' 改变当前目录 RetVal = Shell(File1.FileName, 1) ' 执行可执行程序 End Sub
9.2 文件常用语句及函数
2. 文件操作函数
(1)CurDir函数
格式:CurDir[(drive)] 功能:返回当前的路径 Dim MyPath MyPath = CurDir MyPath = CurDir(“C“)
(2)LOF(#文件号)函数
功能:返回一个已打开的文件的长度
9.2 文件常用语句及函数
9.2 文件常用语句及函数
(5)MkDir语句
格式:MkDir path 功能:创建一个新的目录或文件夹。
(6)ChDir语句
本章要点:
文件系统控件的使用方法
文件常用语句及函数的使用方法 顺序文件的使用方法 随机文件的使用方法 二进制文件的使用方法
9.1 文件系统控件
9.1.1 驱动器列表框
(1)Drive属性
Drive属性用来返回和设置在驱动器列 表框中显示的驱动器 [对象.] Drive[=drive] 当Drive属性值发生变化时,即驱动器 列表框中的显示驱动器发生变化时, 都会引发此事件。
(4)其他属性
9.1 文件系统控件
(4)Click、DblClick事件
„单击输出文件名。 Sub File1_Click( ) MsgBox File1.FileName End Sub „双击执行可执行程序。 Sub File1_DblClick( ) ChDir Dir1.Path ' 改变当前目录 RetVal = Shell(File1.FileName, 1) ' 执行可执行程序 End Sub
9.2 文件常用语句及函数
2. 文件操作函数
(1)CurDir函数
格式:CurDir[(drive)] 功能:返回当前的路径 Dim MyPath MyPath = CurDir MyPath = CurDir(“C“)
(2)LOF(#文件号)函数
功能:返回一个已打开的文件的长度
9.2 文件常用语句及函数
9.2 文件常用语句及函数
(5)MkDir语句
格式:MkDir path 功能:创建一个新的目录或文件夹。
(6)ChDir语句
c语言基础ppt第9章
22/44
fpNew = fopen("1_new.c","w");/* 创建1_new.c并以只写方式打开*/ if (NULL== fpNew) { printf("Create file 1_new.c error\n"); exit(-1); } while(!feof(fp)) /* 未遇到文件尾时循环读写操作 */ { nCh = fgetc(fp); /* 从文件1.c读取字符 */ if(EOF != nCh) { nResult = fputc(nCh,fpNew); /* 把字符写到文件1_new.c中 */ if(EOF == nResult) { printf("Write character to 1_new.c error\n"); exit(-1); } putchar(nCh); } } fclose(fp); fclose(fpNew); printf("\nFile saveas successfully!\n");
8/44
文件内部读写 位置指针 curp
• 3.1 stdio.h
stdio.h中关于文件的宏定义 : #define SEEK_SET 0 /* 表征文件头位置*/ #define SEEK_CUR 1 /* 表征文件位置指针当前 所处位置*/ #define SEEK_END 2 /* 表征文件尾位置*/ #define EOF -1 /* 文件结束标识宏常量*/
fprintf() 把数据按格式输出到文件流
取指定大小的 数据块
向文件流中写入指定大小的 数据块
从文件流中读取(输入)一个字 文件内部读写位置指针复位 rewind() 符 到文件头 写入(输出)一个字符到文件流 中 从文件流中读一行或指定长度 字符串 fseek() 文件内部读写位置指针置为 特定位置 返回文件内部读写位置指针 当前位置
fpNew = fopen("1_new.c","w");/* 创建1_new.c并以只写方式打开*/ if (NULL== fpNew) { printf("Create file 1_new.c error\n"); exit(-1); } while(!feof(fp)) /* 未遇到文件尾时循环读写操作 */ { nCh = fgetc(fp); /* 从文件1.c读取字符 */ if(EOF != nCh) { nResult = fputc(nCh,fpNew); /* 把字符写到文件1_new.c中 */ if(EOF == nResult) { printf("Write character to 1_new.c error\n"); exit(-1); } putchar(nCh); } } fclose(fp); fclose(fpNew); printf("\nFile saveas successfully!\n");
8/44
文件内部读写 位置指针 curp
• 3.1 stdio.h
stdio.h中关于文件的宏定义 : #define SEEK_SET 0 /* 表征文件头位置*/ #define SEEK_CUR 1 /* 表征文件位置指针当前 所处位置*/ #define SEEK_END 2 /* 表征文件尾位置*/ #define EOF -1 /* 文件结束标识宏常量*/
fprintf() 把数据按格式输出到文件流
取指定大小的 数据块
向文件流中写入指定大小的 数据块
从文件流中读取(输入)一个字 文件内部读写位置指针复位 rewind() 符 到文件头 写入(输出)一个字符到文件流 中 从文件流中读一行或指定长度 字符串 fseek() 文件内部读写位置指针置为 特定位置 返回文件内部读写位置指针 当前位置
C语言第九章
main () { --------------------function1(); --------------------function2(); --------------------function1(); ----------}
function1 () { --------------------} function2 () { ----------function3(); ----------} function3 () { --------------------}
Example
void printline (void) { int i; for (i = 1; i < 40; i++) printf(“-”); printf(“\n”); }
void printline (void);/*declaration*/ This program will print the following main() output: { -------------------------------------printline(); This illustrates the use of C functions printf(“This illustrates the use -------------------------------------of C functions”); printline(); }
Note
When a function reaches its return statement, the control is transferred back to the calling program. In the absence of a return statement, the closing brace acts as a void return. A local variable is a variable that is defined and used inside a function.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)数据的逻辑结构。数据的逻辑结构就是 数据元素间的逻辑关系,它研究的是数据元素及其 关系的数学特性,与数据的存储无关,是独立于计 算机的。
数据的逻辑结构可概括地分为线性结构和非线 性结构两种,如图9.1.1所示。
图9.1.1 数据的逻辑结构
线性结构的逻辑特性是有且仅有一个开始元素 和一个终结元素,除第一个元素以外,其他元素有 且仅有一个直接前驱;除最后一个元素外,其他元 素都有且仅有一个直接后继。
在C语言中,基本数据类型包括整型、实型等, 这些变量的值是不可再分的;而构造类型包括数组、 结构体等,这些变量的值是可以再分的,也可以说 它们是带结构的数据,它们的成分可以是基本数据 类型,也可以是构造数据类型等。
5.数据结构(data structure) 数据结构指的是数据之间的相互关系,即数据 的组织形式。 可以用集合论的方法定义数据结构如下:
数据对象,可表示为集合W={Mon,Tue,Wed, Thu,Fri,Sat,Sun};再如,字母数据对象可表 示为集合C={‘A’,‘ B ’,…,‘Z’}。
4.数据类型(data type)
数据类型是一个值的集合和定义在该值集上的 一组操作的总称。程序中出现的每一个变量必须与 一个而且只能与一个数据类型相联系,它不仅规定 了该变量可以设定的值的集合,还规定了该集合上 的运算。各种语言规定了它所允许的数据类型。
S=(D,R) D={ai|ai∈ElemSet,i=0,1,2,3,…,n,n≥0} R={<ai-1,ai>|ai-1,ai∈D,2≤i≤n} 数据结构S是一个二元组,其中D是一个数据元 素的有限集合,R是定义在关系D上的有限集合,即 R是由有限个关系所构成的集合。若n=0时,则D是 一个空集。 数据结构分为逻辑结构与物理结构两种。
在进行实际的数据处理时,被处理的数据都是 存放在计算机的存储空间中,而且,各数据在计算 机存储空间的位置关系与它们的逻辑关系通常是不 同的。因此,为了能表示出存放在计算机存储空间
的各个节点之间的逻辑关系,在数据的存储结构中, 不但要存放各个节点的信息,还要存放各个节点之 间逻辑关系的信息。
下面介绍4种常见的存储结构:
的数值、字符以及能够输入到计算机中并被计算机 程序处理的符号。
计算机发展初期,由于计算机主要用于数值计 算,数据指的就是数值。随后由于计算机应用的普 及,数据的含义也比原来变得更加广泛。如文字、 表格、声音、图形、图像等都属于数据的范畴。
2.数据元素(data element) 数据元素是数据集合中的客体(个体),是数 据的基本单位,有时也称为节点或记录。例如数据
图9.1.2 顺序存储结构
2)链式存储结构。顺序存储结构比较适合于 线性结构,而非线性结构一般很难用顺序存储结构 来实现,所以,通常不用顺序存储结构,而是用链 式存储结构来实现非线性结构。
链式存储结构是给节点附加指针字段。在这种 存储结构中,节点所占的存储单元分为两部分:一 部分是用来存放节点自身的信息,称为数据域;另 一部分是用来存放该节点后继节点的存储单元的地 址,称为指针域。指针域中可以有一个或者多个指 针,用来表示节点的一个或多个后继,也可以用来
1)顺序存储结构。顺序存储结构主要用于线性 的数据结构。它是把逻辑上相邻的数据元素节点存 储在物理上相邻的存储单元中,各节点之间的逻辑 关系由存储单元的邻接关系来体现。
如图9.1.2所示为顺序存储结构,假设每个节点 占据长度为l(字母,以下同)的存储空间,这个逻 辑结构在物理存储器中以一定的顺序占用连续的存 储空间。对于这种结构,只需要知道第一个元素的 地址和每一个元素所占的存储单元数就可以得到任 何一个元素所在的位置。在顺序存储结构中存取任 意一个元素所需要的时间是相等的。
早期的计算机主要解决纯数值计算的问题,以 பைடு நூலகம்为加工对象的程序设计称为数值型程序设计。其 涉及的操作对象比较简单,其一般为整型、实型数 据等。
后来,随着计算机应用领域的不断拓宽,解决 非数值计算的问题越来越引起人们的关注。例如, 金融管理、文献检索、计算机辅助设计等。这些问 题主要集中于对数据集合中的各元素以各种方式进 行运算,如插入、更新、删除、查找等。在此涉及 的数据类型比较复杂,而且数据元素之间具有各种 特定的联系,所以,如果了解了数据集合中元素之 间的关系以及如何组织和表示这些数据,就能大大 提高计算机处理问题的效率。
数据结构是一门研究非数值运算的程序设计问 题的学科,它包含以下3个方面的内容:
(1)数据集合中各数据元素之间的逻辑结构。 (2)对数据进行处理时,各数据元素在计算机 中的存储(物理)结构。 (3)对数据的抽象运算。 1.数据(data) 数据是反映客观事物信息符号的集合,也是计 算机程序要加工的对象。这个集合中包括客观事物
非线性结构的逻辑特性是一个元素可能有多个 直接前驱和直接后继。
线性结构主要有线性表、栈和队列等,而非线 性结构分为树型结构和图型结构等。
(2)数据的物理结构。数据的物理结构又称 存储结构,是数据及其关系在计算机中的存放形式, 是逻辑结构在计算机存储器中的映像,也就是它的 具体实现,通常用高级语言中各种数据类型来描述。
集合N={1,2,3,4,5}中整数1~5都是数据元素。 每个数据元素的表现形式是由一个或多个数据项组 成的。数据项是具有独立含义的最小标识单位,例 如,在老师档案信息管理中的每一位老师就是一个 数据元素,组成它的数据项可以是姓名、性别、年 龄等。
3.数据对象(data object)
数据对象是具有相同特性的数据元素的集合, 是数据的一个子集。例如,一周中的7天就是一个
第9章 数据结构与算法基础
9.1 数据结构与算法概述 9.2 线性表 9.3 栈和队列 9.4 树和二叉树 9.5 图 9.6 排 序 9.7 查 找 本章小结 习题九
9.1 数据结构与算法概述
9.1.1 数据结构的相关概念 实践证明,要想更有效地使用计算机,仅仅掌
握计算机语言而缺乏数据结构和算法的有关知识, 是难以处理诸多复杂应用问题的。