《数据结构打卡》第7天
栈和队列的特点:
从栈和队列的定义考虑出发
栈的定义:限定仅在表尾进行插入和删除操作的线性表
队列的定义:只允许在一端进行删除操作,在另外一端进行插入操作的线性表
综合得出:栈和队列只允许在端点进行操作运算,是操作受限的线性表
0、循环队列
循环队列中,设front为队头指针,rear为队尾指针,存储空间大小为m;
- 则队列满的条件是(rear+1)%m == front;
- 队列空的条件是front == rear;
- 队头元素出队列,front = (front+1)%m ;
- 元素从队尾入队列,rear = (rear+1)%m;
顺序栈和链式栈的表示和实现:
链式栈的初始化:S=NULL;
判断链式栈是否为空:if(S==NULL) return true;else return false;
链式栈的入栈:
Void Push(LinkStackTp *S,DataType e)
{ p = new LinkStack;
p->data=e
p->next=S;
s = p
}
1.1顺序栈基本操作
顺序栈的入栈
顺序栈的出栈
1.2链式栈基本操作
链式栈的入栈
链式栈的出栈
链式队列的入队:
p = QNode;
p->data=x;
p->next=Null;
r->next=p;
r=p;