表:元素,元素个数,元素相对关系;元素操作:find,delete,insert,print,make null
简单数组实现:
元素都被加上了有自然顺序节点的链条,要预先估计一个较高的长度,有空间浪费。每次insert或delete时,因为自然节点固定要整体移动,占用时间。
链表实现:
不连续存储,概念里没有固定的位置编号,仅可以从value上识别,寻找,一个element或一个位置;或者直接用绝对地址调用
具体步骤:建立node结构并连缀,处理函数实现
相关技巧:
使用typedef,对该结构使用中要用到的类型进行定义,避免多次长声明,且数据的结构更加清晰
小知识:
静态变量只在编译时声明一次,以后的声明语句会被忽略,不会分配新的空间,所有的操作都作用到了第一次分配的地址上,在程序结束后释放空间。即使用函数宏##每次声明时都更改变量名,也还是一样的效果,这个我不知道为什么
变量反身修改,一般要借助一个承载原值的中间变量
想要通过代码块修改变量,应该给代码块传递指针,否则只能修改原值的一个copy
直接以要返回的变量为中心考虑循环条件,条件较为间接时再考虑设置中间参考量
malloc和free在stdlib.h中。代码块中的malloc比声明为静态更为灵活,可重复分配,默认程序结束时回收,返回申请得到的地址,如果空间申请不到返回null
把 源代码原稿 分成 头文件.h 和 源文件.c,一个包含各种原型声明,一个包含各种定义
main程序用到某些函数或结构的时候,include头文件.h,语句中直接用就好
main中定义很少,都是语句,而且进程模块化吧