首页 > 后端开发 > 正文

关于JAVA数据结构堆栈用链表实现的问题 想问问入栈代码的作用就是代码功能怎么实现的 不要把思

2024-05-24 05:24:11 | 我爱编程网

今天我爱编程网小编整理了关于JAVA数据结构堆栈用链表实现的问题 想问问入栈代码的作用就是代码功能怎么实现的 不要把思相关信息,希望在这方面能够更好的大家。

本文目录一览:

关于JAVA数据结构堆栈用链表实现的问题 想问问入栈代码的作用就是代码功能怎么实现的 不要把思

JAVA 方法的入栈出栈问题

你得明白栈的定义。代码执行的时候是执行一个方法,执行完,返回方法的上一个代码块继续往下执行后面的内容。这样的话是不是就是一个栈结构了?先进后出。方法一边执行,一边往栈里面存数据,等执行完了就取出数据(取出的是返回值,是最后一个存进去的 栈结构是后进先出),然后执行外面的代码。这么说你可能不明白,我给你举个例子。

int sub(int a,int b){

return a+b;我爱编程网

}

int c = sub(2,3);//注意执行这条语句的时候是不是执行了一个方法?

//那么语句执行的时候是要从左往右执行的对吧,但是事实的逻辑却是先算出来sub(2,3)这个方

//法的返回值,然后再把返回值(5)赋值给 c ,那么这个怎么实现,肯定是一个栈的数据结构,编译的时候先把”int c = “入栈,然后再把 sub(2,3),入栈,执行的时候,从栈里面取,取的第一个肯定是sub(2,3)吧?于是就计算出等于5,继续取,取出了int c =,然后就和5对接上了,就把值赋给c了。这只是一个小例子。

道理是这样,但是具体的存取可不是这样的哦。具体的存取应该分的非常细腻,应该是按照java语法的最小单位来往栈里存取的。说白了一句话,程序运行的时候的先后顺序是跟人大脑想问题的顺序一样的,但是代码不是按照这样的顺序写的(从左到右),于是就用栈结构来达到这样的效果。

这么说,明白了吗?

关于JAVA数据结构堆栈用链表实现的问题 想问问入栈代码的作用就是代码功能怎么实现的 不要把思

关于JAVA数据结构堆栈用链表实现的问题 想问问入栈代码的作用就是代码功能怎么实现的 不要把思

晚上3点还在学习,你也真是蛮拼的。

不知道你Node的代码是怎样的,getNext和setNext方法具体内容。姑且按你说的,head为null,Next为下一Node节点来说吧。(其实我觉得setNext应该是set data的值才对,不是Next。不过没所谓了。按你假设的来说吧)

初始化时,MyLinkedStack中的head如下:head.data=null, head.next=null;

然后第一次入栈,倒数第三行时,n如下:n.data=data, n.next=null;

倒数第二行的head链如下:head.data=null, head.next=n;

若是有再次入栈,我设Node对象为n1,然后数据为data1吧。那n1新建的时候也是:n1.data=data1, n1.next=null;

倒数第三行的n1如下:n1.data=data1, n1.next=n;

倒数第二行的head链如下:head.data=null, head.next=n1, n1.next=n;

当然,这是不知道你getNext和setNext具体代码的情况下,我觉得是head.data=n1, head.next=n;这样才好的。重点来了:栈是后进先出的。

关于JAVA数据结构堆栈用链表实现的问题 想问问入栈代码的作用就是代码功能怎么实现的 不要把思

栈的入栈和出栈的顺序规律是什么?

入栈的顺序规律是排在前面的先进,排在后面的后进。

栈(stack)又名

堆栈

,它是一种运算受限的

线性表

。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。

向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

要搞清楚这个概念,首先要明白”栈“原来的意思,如此才能把握本质。栈,存储货物或供旅客住宿的地方,可引申为仓库、中转站,所以引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法。

首先系统或者

数据结构

栈中数据内容的读取与插入(压入push和 弹出pop)是两回事!压入是增加数据,弹出是删除数据 ,这些操作只能从栈顶即最低地址作为约束的接口界面入手操作 ,但读取栈中的数据是随便的没有接口约束之说。

很多人都误解这个理念从而对栈产生困惑。而系统栈在

计算机体系结构

中又起到一个跨部件交互的媒介区域的作用 即 cpu 与内存的交流通道 ,cpu只从系统给我们自己编写的

应用程序

所规定的栈入口线性地读取执行指令, 用一个形象的词来形容它就是pipeline(管道线、流水线)。cpu内部交互具体参见 EU与BIU的概念介绍。

以上就是我爱编程网小编给大家带来的关于JAVA数据结构堆栈用链表实现的问题 想问问入栈代码的作用就是代码功能怎么实现的 不要把思全部内容,希望对大家有所帮助!

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“关于JAVA数据结构堆栈用链表实现的问题 想问问入栈代码的作用就是代码功能怎么实现的 不要把思”相关推荐