计算机程序设计艺术一线性表“逻辑结构”
概念:
线性表的“逻辑结构”主要有栈、队列,双向队列。“逻辑结构”加引号的原因是书中并没有这种说法,逻辑结构来自我以前看的书。
示意图:
程序设计示意图:
插入和删除操作:
上图代码实现:
2a
//代码
//其中T是栈首指针
//X为栈空间
//MAX为栈的最大空间
//Y为缓冲区
T += 1;
if(T > MAX)
{
exit(OVERFLOW);//上溢
}
X[T] = Y;
3a//3a代码
//T为栈首指针
//X为栈空间
if(T == 0)
{
exit(UNDERFLOW);//下溢
}
Y = X[T];
T -=1;
6a//6a代码
//MAX是最大值
//使用的队列是循环队列,所以R==MAX时,将R=1 R是队尾指针
//F是指向前端之前的空间的指针如R == F说明循环队列已满不可再添加任何的值
if(R == MAX)
{
R =1;
}
else
{
R += 1;
}
if(R == F)
{
exit(OVERFLOW);
}
X[R] = Y;
7a//7a代码
//R是队尾指针,F是指向队首之前的不用空间指针
//MAX是队列中能存储的最大值
//X[]是队列
if(F == R)
{
exit(UNDERFLOW);
}
if(F == MAX)
{
F = 1;
}
else
{
F += 1;
}
Y = X[F];