数据结构与算法_线性结构
线性表
线性表是由n(n>0)个相同类型的数据元素组成的有限序列,它是最基本,最常用的一种线性结构。
顺序表是顺序存储方式,即逻辑上相邻的数据在计算机内的存储位置也是相邻的。顺序存储方式,元素存储是连续的,中间不允许有空,可以快速定位第几个元素,但插入,删除时需要移动大量元素。

链表是线性表的链式存储方式,逻辑上相邻的数据在计算机内的存储位置不一定相邻,那么怎么表示逻辑上的相邻关系呢?

基本操作:
1)初始化 2)创建 3)取值 4)查找 5)插入 6)删除

栈:
后进先出(LIFO)的线性序列,称为“栈”。栈也是线性表,只不过它是操作受限的线性表,只能在一端进出操作。进出的一端称为栈顶(top)。另一端称为栈底(base)。
栈可以顺序存储也可以链式存储,分别称为顺序栈和链栈。
STL库:<stack>
#include<stack>
顺序栈:
分配地址时,动态分配:
typedef char ElemType;//别名

静态分配时:

链栈:

队列
先进先出(FIFO)的线性序列,也是一种线性表。他也是操作受限的线性表,只能在两端操作:一端进,一端出。队列可以顺序存储也可以链式存储。
STL库<queue>
顺序队列:
分配地址时,动态分配:

分配地址时,静态分配:

链队

数组
数组是由相同类型的数据元素构成的有限集合。
STL库<vector>
一维数组看作一个线性表。

二维数组也可以看作一个线性表X=(X0,X1,X2,......,Xn-1),只不过每一个数据元素Xi也是一个线性表。

数组一般采用顺序存储结构。
字符串


字符串的存储:
字符串的存储可以使用顺序存储和链式存储两种方式。



