队列也可以用顺序存储表示。定义还是一样的:从队尾rear推入元素。从头部head拿出元素,是FIFO。
与链式存储一致,我们仍然需要附设两个指针front和rear分别表示队列头元素和队列元素的位置。初始时front=rear=0是队列空的条件。
每当插入新的队列元素时,尾指针将增1.删除队列头元素时,头指针增加1。即非空队列中:头元素总是指向队首元素,而尾指针总是指向队尾元素的下一个位置。
除了基本的顺序存储外,我们还可以使用循环数组来构造一个循环队列。
在循环队列中,[......]
队列也可以用顺序存储表示。定义还是一样的:从队尾rear推入元素。从头部head拿出元素,是FIFO。
与链式存储一致,我们仍然需要附设两个指针front和rear分别表示队列头元素和队列元素的位置。初始时front=rear=0是队列空的条件。
每当插入新的队列元素时,尾指针将增1.删除队列头元素时,头指针增加1。即非空队列中:头元素总是指向队首元素,而尾指针总是指向队尾元素的下一个位置。
除了基本的顺序存储外,我们还可以使用循环数组来构造一个循环队列。
在循环队列中,[......]
1、线性表也可以用顺序表示实现,即用一组地址连续的存储单元依次存储线性表的数据元素。特点是ai和ai+1位于相邻的存储单元上,只要确定了存储线性表的起始位置,任意元素都可以随机存取。
2、LOC(ai) = LOC(a1)+(i-1)*l
3、通常用数组来描述数据结构中的顺序存储结构。
4、线性表的顺序存储不同于数组的地方是:数组的大小是静态不动的;而线性表类似于C++中的vector,如果存储空间不够,会自动的增加内部空间,而这一切,对外部用户是透明的。
5、顺序存储的[......]
BiTree.h:顺序存储二叉树及其基本操作
enum {MAX_TREE=100,OK=0,WRONG=-1};
typedef int BTree[MAX_TREE];
typedef int Status;
struct position
{
int level,order;
};
void InitBiTree(BTree &T)
{
memset(T,0,sizeof(int)*MAX_TREE);
}
Status CreateBiTr[......]
读书笔记 《数据结构》严蔚敏,第二章的线性表(顺序存储),C++描述。
List.h
#include
#include
typedef int Status;
enum S{OK=0,WRONG=-1};
typedef struct
{
int *elem;
int len;
int listsize;
} List;
Status InitList(List &L)
{
if((L.elem=new i[......]