1、数组
数组(Array)是有序的元素序列。在c语言里,一维数组可以定义为int a[3]={1,2,3}这意味着开辟一个int类型的代码块,a[0]=1,a[1]=2,a[3]=2,数组下标从0开始计算。在c++里,静态一维数组定义为int arr[100]={1,2},此时是定义加初始化。在java里,数组可以用int[] i=new int[6]定义长度为6的数组,也可以用int[] ii=new int[]{0,1,2,3}定义数组且赋值。
2、链表
链表(Linked List)是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。链表失去了数组随机读取的特点,同时链表由于增加了结点的指针域,空间开销比较大。链表最明显的好处就是,常规数组排列关联项目的方式可能不同于这些数据项目在记忆体或磁盘上顺序,数据的存取往往要在不同的排列顺序中转换。链表允许插入和移除表上任意位置上的节点,但是不允许随机存取。
3、栈和队列
栈(stack)是限定仅在表尾进行插入或删除操作的线性表。表尾端为栈顶,表头端为栈底,栈的特点是后进先出。
队列(queue)只允许在表的一端进行插入,在另一端删除元素。允许插入的为队尾,允许删除的为队头。队列的特点是先进先出。
4、树