c语言中,为什么说先进的放在最后面?

c语言中,为什么说先进的放在最后面?,第1张

因为它说了依次轮搏纳流入栈和入队= =,所以就是A放栈,B放队,C放栈,D放队。

栈是先进后出,a在输出的第一个,那么肯定是在b进入前出来的,后面的bc也是同样情况,所以前六个是进a,出a,进b,出b,进c,出c,此时栈为空,后面输出序列为e,d,锋芹均在f之前,同理说明ed在f入栈之前出来的;

次序是 进d,进e,出e,出d,此时栈又空了,出栈为f,g,次序和输入一样,就是和a,b的一样,所以是进f,出f,进g,出g

全部过程:进a,出a,进b,出b,进c,出c,进d,进e,出e,出d,进f,出f,进g,出g。

扩展资料

栈在程序的运行中有着举足轻重的作用。最重要的是栈保存了一基基没个函数调用时所需要的维护信息,这常常称之为堆栈帧或者活动记录。

1、进栈(PUSH)算法

①若TOP≥n时,则给出溢出信息,作出错处理(进栈前首先检查栈是否已满,满则溢出;不满则作②);

②置TOP=TOP+1(栈指针加1,指向进栈地址);

③S(TOP)=X,结束(X为新进栈的元素);

2、退栈(POP)算法

①若TOP≤0,则给出下溢信息,作出错处理(退栈前先检查是否已为空栈, 空则下溢;不空则作②);

②X=S(TOP),(退栈后的元素赋给X):

③TOP=TOP-1,结束(栈指针减1,指向栈顶)。

参考资料来源:百度百科-栈

1、栈中的“先进后出,后进先出”意思是:

栈的概念是d压,就像子d壳装d,一粒一粒压进去,但是打出来的时候是从上面打出来的,最先压进去的最后d出来,如果进去顺序是123,打出来顺序是321,这就是后进先出。

2、栈的定义:

栈是限定仅在表尾进行插入和删除 *** 作的线性表。“栈”者,存储货物或供旅客住宿的地方,可引申为仓库、中转站,引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法。

3、栈与队列的区别:

队列的腔稿概念就是我们平时排队,按次序来,你排在第1个,那你就第一个轮到,就是先进先出,先到先来。

4、栈碰圆搏在计算机领域里解释:

栈作为一种数据结构,是一种只能在一端进行插入和删除 *** 作的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始d出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删笑祥除 *** 作中,不需要改变栈底指针。

栈是允许在同一端进行插入和删除 *** 作的特殊线性表。允许进行插入和删除 *** 作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为后进先出表。

栈可以用来在函数调用的时候存储断点,做递归时要用到栈!

5、堆和栈的区别:

(1) *** 作系统方面区别:

在使用栈就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自由度小。使用堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由度大。

(2)数据结构方面区别:

还有就是数据结构方面的堆和栈,这些都是不同的概念。这里的堆实际上指的就是(满足堆性质的)优先队列的一种数据结构,第1个元素有最高的优先权;栈实际上就是满足先进后出的性质的数学或数据结构。虽然堆栈,堆栈的说法是连起来叫,但是他们还是有很大区别的,连着叫只是由于历史的原因。

6、程序例子

//main.cpp

int a = 0全局初始化区

char *p1全局未初始化区

main()

{

int b栈

char s[] = "abc"栈

char *p2栈

char *p3 = "123456"123456在常量区,p3在栈上。

static int c =0; 全局(静态)初始化区

p1 = (char *)malloc(10)

p2 = (char *)malloc(20)

分配得来得10和20字节的区域就在堆区。

strcpy(p1, "123456")123456放在常量区,编译器可能会将它与p3所指向的"123456"优化成一个地方。

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12515948.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存