哪位大神能给出2、3题的详细解答啊。数据结构,栈和队列 50

 我来答
百度网友3fe8001
2015-04-29 · TA获得超过376个赞
知道小有建树答主
回答量:123
采纳率:100%
帮助的人:75.9万
展开全部
2.因为你的问题形容的比较模糊,所以补充信息给出你的答案。
首先定义队列一定要说是单向循环队列,还是双向循环队列,你这里没有指出就默认是单向循环。
2.1何时队列满。
当新的结点进入队列的时候,那么当前的length+1当你的length=MAXlength;是代表该队列是满。
2.2入队列,根据队列的定义如果入队列只能在尾巴处加入。
新节点是node;

node->next=rear->next;

rear->next=node;

2.3出队列,根据队列的定义如果出队列只能在头结点出。
temp=rear->next;

rear->next=rear->next->next;

free(temp);

3.首先假设两个栈是等长的,那么队列慢的判断条件的是两个栈中的结点和,等于一个栈的容量的时候,就代表队列满了!当两个栈不等长的时候,两个栈中的结点和等于较小的栈的长度队列就满了。
以较小的栈作为队列存放栈,长的栈作为辅助栈。
3.1出队列从栈顶去除结点即可。
3.2入队列,将短栈内的元素,一次入长栈,然后将新元素,压入短栈,再将长栈中的元素一次入短栈。即完成了入栈。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式