栈与队列

发布时间 2024-01-05 00:19:10作者: 小白不败

栈与队列

1.特点:先进后出。
2.存储结构:顺序结构和链式结构。
2.1顺序结构:开始建立栈是,指示器top赋值为-1,在入栈时,指示器先先进行加加的操作,再赋值。

		A[++top]=x;

2.2链式结构:在入栈时,采用头插法的操作,插入元素,目的是为了方便删除可以让工作指针向尾部移动。
3.判空:对于顺序队列判断指示器是否为-1即可;对于链式存储判断下一个元素是否为NULL即可。

顺序队列和循环队列

1.特点:先入先出。
2.存储结构:顺序结构和链式结构。
3.1顺序存储:有两个指示器front、rear,当入队时,rear向下标较大的方向移动;当出队时,front向下标较大的方向移动。因此,就会造成假溢出的情况。
3.2循环队列:顾名思义就是可以循环使用,依然是设置两个指示器front、rear,

//入队函数
void CirQueue::EnQueue(int n) 
{
	//运用取余的操作实现队列的循环操作
	rear=(rear+1)%QueueSize;
	data[rear]=n;
	cout<<n<<" ";
}

//出队函数
int CirQueue::DeQueue() 
{
	front=(front+1)%QueueSize;
	return data[front];
}

不难发现,我们采用取模的方式来实现循环。
3.3判空:在循环队列中,只需要判断front是否等于rear即可。