数据结构-绪论
数据结构是研究如何将数据以一种特定的方式存储到内存中。
冯诺依曼架构/Von Neumann architecture
黑色箭头表示数据信号。
CPU Central Processing Unit
包括运算器,控制器,寄存器(Register)等器件。
存储器与寄存器的关系
CPU <——>寄存器 <—->缓存<—–>内存
存储器在CPU外。一般指硬盘,U盘等可以在切断电源后保存资料的设备。容量一般比较大,缺点是读写速度都很慢,普通的机械硬盘读写速度一般是50MB/S左右。
缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。
寄存器一般是指由基本的RS触发器结构衍生出来的D触发,就是一些与非门构成的结构,一般整合在CPU内。其读写速度跟CPU的运行速度基本匹配,但因为性能优越,所以造价昂贵。
内存分为ROM和RAM
实验课
%g
的使用
%g
和 %f
是C语言中用于格式化输出浮点数的两种不同格式说明符,它们在输出方面有一些区别:
%f
:这个格式说明符用于输出浮点数的固定小数点表示形式,通常会显示小数点后的一定位数(默认是6位)。
1 | num = 3.14159; |
输出:
1 | 3.141590 |
%g:这个格式说明符用于输出浮点数的一种更通用的表示形式,它会根据数字的大小和精度来动态选择使用固定小数点表示法(%f
)或指数表示法(%e
或 %E
)以得到更简洁的输出。
%g
也可以在整数部分末尾的零被省略掉,以更简洁的形式输出。例如,100.00
会以 %f
输出为 100.000000
,但以 %g
输出为 100
。
结构体的访问
.
运算符和->
运算符来访问结构体的成员有不同的语法规则和含义。
- 对于结构体变量(例如
struct stu a;
),你可以使用.
运算符来访问其成员。例如,a.eng
表示访问结构体变量a
中的eng
成员,而a.maths
表示访问maths
成员。 - 对于指向结构体的指针(例如
struct stu* a;
),你应该使用->
运算符来访问其成员。例如,a->eng
表示访问指针a
指向的结构体中的eng
成员,而a->maths
表示访问maths
成员。
总结
What is DATA Structure?
DS =Data elements + Relationships of data elements
What is Program?
Data structures + Algorithms = Program
What is ADT (Abstract Data Structure)?
ADT = DS + Operations
T(N)
时间复杂度
S(N)
空间复杂度