首页 > 后端开发 > 正文

关于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数据结构堆栈用链表实现的问题 想问问入栈代码的作用就是代码功能怎么实现的 不要把思

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

我爱编程网(https://www.52biancheng.com)小编还为大家带来栈的入栈和出栈的顺序规律是什么?的相关内容。

入栈的顺序规律是排在前面的先进,排在后面的后进。我爱编程网

栈(stack)又名

堆栈

,它是一种运算受限的

线性表

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

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

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

首先系统或者

数据结构

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

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

计算机体系结构

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

应用程序

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

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

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

php分页跳转你这个太麻烦我给你推荐一个<?phpclasspage{var$page_name="page";var$next_page='>';//下一页var$pre_page='<';//上一页var$first_page='<<首页';//首页var$last_page='尾页>>';//尾页var$p

2025-01-15 13:53:30
下面是用PHP实现简单网页计算器的代码,为什么不能把<?php...?>这段代码移到<table>..</table>后呢?
下面是用PHP实现简单网页计算器的代码,为什么不能把<?php...?>这段代码移到<table>..</table>后呢?

用php做个计算器(加减乘除),两个文本框输入数字,第三个输出结果并不需要php呀这样写的行不&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt; &lt;title&gt;简单计算器&lt;/title&gt;&lt;/head&gt;&lt;body&gt; &lt;input type="text" name="first" id="f

2024-08-23 18:47:27
深入PHP中的HashTable结构详解(关于php hash_hmac 与java签名的转化问题)
深入PHP中的HashTable结构详解(关于php hash_hmac 与java签名的转化问题)

深入PHP中的HashTable结构详解深入PHP中的HashTable结构详解深入PHP中的HashTable结构详解对php内核有一定了解的人应该都知道php的精髓就是HashTable,HashTable在php的实现中无处不在。包括php的数组、什么全局变量、局部变量的作用域等等,php的hashtable拆开来说就是四部分:hash函数:用的是time33的散列

2024-12-03 08:45:45
java求解,怎么实现输人一个以0结尾的数值序列,以0表示输入结束!题目如下,代码如图,图中是错的
java求解,怎么实现输人一个以0结尾的数值序列,以0表示输入结束!题目如下,代码如图,图中是错的

java求解,怎么实现输人一个以0结尾的数值序列,以0表示输入结束!题目如下,代码如图,图中是错的while的条件判断是当输入为0时,结束循环。并用了list的sort方法。importjava.util.ArrayList;importjava.util.Scanner;publicclassTest{publicstaticvoidmain(Str

2024-06-30 14:51:52
php实现文件安全下载的代码怎么用
php实现文件安全下载的代码怎么用

php实现文件安全下载的代码怎么用你可以建立一个函数如下:functiondownload($fileName){Header("content-type:application/octet-stream");Header("content-disposition:attatchment;filename:".$fileName.".torrent");if(file_e

2024-09-17 08:47:00
PHP中怎么用代码实现文件下载
PHP中怎么用代码实现文件下载

php实现文件下载代码~echo"&lt;ahref='$file'&gt;".$file."&lt;/a&gt;"需要绝对路径,而且注意目录是不可以下载的。&lt;?php$root="d:/";if(is_dir($root)){$openHandle=opendir($root);while(false!==($file=readdir($openHandle)))

2024-08-07 23:15:00
请问php的数据库函数中mysql_fetch_row、mysql_affected_rows、mysql_num_rows的区别(封装一个php函数,能实现sql语句查询表里面的内容的功能,在调用函数就能执行)
请问php的数据库函数中mysql_fetch_row、mysql_affected_rows、mysql_num_rows的区别(封装一个php函数,能实现sql语句查询表里面的内容的功能,在调用函数就能执行)

请问php的数据库函数中mysql_fetch_row、mysql_affected_rows、mysql_num_rows的区别1.当从数据库中取出数据时,mysql_num_rows()函数返回符合查询条件的记录行数,如果没有符合的,返回0。2.当向数据库插入数据和更新某个记录的部分内容时,用mysql_affected_rows返回插入或者更新成功的行数。3.mysql_fet

2024-08-12 05:06:25
急需日历记事本JAVA源代码 用java图形用户界面实现: 编写一个日历程序,能实现显示日历等简单功能。
急需日历记事本JAVA源代码 用java图形用户界面实现: 编写一个日历程序,能实现显示日历等简单功能。

急需日历记事本JAVA源代码importjava.util.Calendar;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.io.*;importjava.util.Hashtable;publicclassCalendarPadextendsJFrameimplement

2024-04-02 22:31:00