好久没有写了,刚参加完第十届蓝桥杯,感觉炸了,就写了四道题,重在参与!
这是今天学习的内容,知识很简单,但是我觉的很实用!
线性表的基本组成部分:数组、单向链表、双向链表
数组的特点:数据是连续的,随机访问速度快
数组分为多维数组,动态数组。
C语言的多维数组是通过一维数组来实现的。
动态数组是指数组的容量能够动态增长的数组。
对于C语言,动态数组,需要手动实现;
而C++STL提供了Vector;
Java,Collection集合提供了ArrayList和Vector;
单向链表
单向链表(单链表)是链表的一种,由节点组成;
每个节点都包含下一个节点的指针。
后继节点:该节点的后面的结点。
单链表的操作:
1)删除节点
2)添加节点
单链表的特点:节点的链接方向是单向的,相对于数组来说,
单链表的随机访问速度很慢,但是单链表的删除和添加数据的效率很高
双向链表:双链表也是由节点构成的,它的每个数据节点都是有两个指针,
分别指向直接后继和直接前驱;所以,从双向链表的任何一个结点我们
可以很方便的访问它的前驱结点和后继节点。
末尾的后继节点是表头。
双向链表的操作:
1)双向链表的删除
2)双向链表的添加
#ifndef和#endif的使用
1.程序中_ADD_H_为预处理器变量,书写格式一般是头文件名大写,
前后加下划线,“.”用下划线代替。比如stdio.h表示为_STDIO_H_.
2.预处理器变量一般有两种状态:已定义或未定义。
#ifndef 指示检测指定的预处理器变量是否未定义,如果未定义,
那么跟在后面的所有指示被处理,直到出现#endif;如果已定义,
那么#ifndef测试为假,该指示和#endif指示间的代码都被忽略。
3.在调用该头文件时一般用#include “add.h”.
4.头文件的使用:
如果头文件名包含在<>中,那么认为该头文件是标准头文件。
编译器将会在预定义的位置集查找该头文件,
这些预定义的位置可以通过设置查找路径环境变量或者通过命令行选项来修改。
如果头文件名包含在" "中,那么认为它是非系统文件,
非系统文件的查找通常开始于源文件所在的路径。