数据结构-绪论
数据结构是研究如何将数据以一种特定的方式存储到内存中。
冯诺依曼架构/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)空间复杂度