栈的问题
第一题:假设一长度为50的数组(数组元素的下标从0到49)作为栈的存储空间,栈底指针bottom指向栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,top=...
第一题:假设一长度为50的数组(数组元素的下标从0到49)作为栈的存储空间,栈底指针bottom指向栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,top=30(数组下标),则栈中具有多少元素?
第二题:设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一个位置),尾指针rear=10(指向队尾元素),则该循环队列中共有多少元素?
求解题过程和方法,越详细越好,谢谢了 展开
第二题:设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一个位置),尾指针rear=10(指向队尾元素),则该循环队列中共有多少元素?
求解题过程和方法,越详细越好,谢谢了 展开
展开全部
对栈的操作是很麻烦的,而且不同的栈,栈底和栈顶的定义不同。
根据第一题的题意和答案,应该理解为:
ACCESS中栈顶指针TOP中不存储数据元素,只是指向栈顶,为下个数据进栈提供地址。当一个数据要插入栈中时,
top.data=数据。top=top-1;
此题中bottom=49,top=30。top中无数据,最后一个进栈的数据存在 31 中。所以只有19个元素。
bottom-top=49-30=19,所以栈中有19个元素,
根据第一题的题意和答案,应该理解为:
ACCESS中栈顶指针TOP中不存储数据元素,只是指向栈顶,为下个数据进栈提供地址。当一个数据要插入栈中时,
top.data=数据。top=top-1;
此题中bottom=49,top=30。top中无数据,最后一个进栈的数据存在 31 中。所以只有19个元素。
bottom-top=49-30=19,所以栈中有19个元素,
更多追问追答
追问
你算的是对的,那么第二个怎么解呢?还有啊,答案说:栈中的元素等于栈底减去栈顶,这句话对不对啊?
追答
用“尾指针减去头指针”,如为负数则加上容量即可!即10-45+50=15。
解析:
队空的时候front=rear=0;队列元素从队尾入队,从队头出队!
front=45说明出队的元素是45个,rear=10说明入队的元素是10个,入队的减去出队的明显是负数-35,不合常理,所以队列原本里面是满的即容量50,50-45+10即是15个元素
简单的说,栈中的元素等于栈底减去栈顶,是对的
展开全部
bottom=49,假设数组为a[],则a[49]作为栈底,top指向栈顶元素的下一个位置,元素数为bottom-top=19
循环队列元素数n=(rear-front+M)%M,M为队列的最大容量,所以m=(10-45+50)%50=15,如果不明白呢,就画一个容量为6的循环队列,随意设置其中的元素,你就会发现规律。。。
循环队列元素数n=(rear-front+M)%M,M为队列的最大容量,所以m=(10-45+50)%50=15,如果不明白呢,就画一个容量为6的循环队列,随意设置其中的元素,你就会发现规律。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1,49-30+1=20;
2,45-10+1=36;
2,45-10+1=36;
追问
额,朋友,你算的跟答案都不一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询