stack 相关问题

堆栈是后进先出(LIFO)抽象数据类型和数据结构。堆栈的一个常见用途是存储子例程参数和返回地址。

在一个函数指针下存储不同的函数

请允许我提供一些我的问题的背景: 我有一项大学作业,为我提供了一个名为 StringList 的类。这个类负责很多字符串操作...

回答 1 投票 0

MPI 作业崩溃并检测到堆栈粉碎

我在网上找到了一小段 Fortran 90 的 MPI 代码,用于使用异构节点测试我的集群。代码就像这样 程序MPI 包括“mpif.h” 整数 :: myrank,大小,

回答 1 投票 0

内存组织:类和方法存储在哪里?

我希望了解编程语言中的内存组织,它由四个主要区域组成:堆栈、堆、代码和数据。但是,我不清楚编程在哪里

回答 1 投票 0

在反汇编程序中处理缓冲区溢出

所以,我正在做一个CTF,现在已经结束了,但我想知道这个问题。 一旦你通过了“登录”页面,它就会带你到这段代码,但我无论如何也无法做到……

回答 1 投票 0

如何识别对象是在栈内存还是堆内存

我最近收到了一份数据结构课程的大学作业,要求我用 C++ 创建一个双向链表。我想开门见山。在从事我的工作时...

回答 1 投票 0

在 JavaScript 中使用堆栈查找下一个更大元素

我正在熟悉 Stack,虽然能够想出一个逻辑,它帮助我解决了大部分问题,但我在很少的问题案例中遇到了问题。 console.log(greaterL([56, 23, 1, 5, 18, 17]))//[...

回答 1 投票 0

使用 Jetpack compose 的类似 Tinder 的堆栈卡 - 加载时间优化

我能够使用 compose 实现像卡片堆栈一样的 Tinder,只需循环并将用户个人资料卡堆叠在它们上面,但是当我加载屏幕时。加载需要几秒钟,并且......

回答 1 投票 0

如何在SliverList中添加定位堆栈并使其可滚动,就像我们滚动时顶部图像部分将隐藏并只能看到appBar&scroll

这里我粘贴了我想要实现的视频链接,请帮忙,我想在可滚动侧的顶部添加一个容器,并且容器的某些部分应该位于应用程序b的末尾...

回答 1 投票 0

有没有办法避免堆栈使用 isEmpty() 函数?

以下程序使用整数堆栈。如果我想在调用 pop() 之前避免使用 isEmpty() ,那么当堆栈为空时,函数 int pop() 可以返回哪个值? #包括 以下程序使用整数堆栈。如果我想在调用 pop() 之前避免使用 isEmpty() ,那么当堆栈为空时,函数 int pop() 可以返回哪个值? #include <stdio.h> #include <string.h> #include <stdlib.h> #define STK_SIZE 100 #define INSTR_SIZE 5 int push(int * stack,int * stk_top,int operand); int pop(int * stack,int * stk_top); int main() { int n_instr=0; int operand=0; int stack[STK_SIZE]; int stk_top = -1; char line[INSTR_SIZE+5]; FILE * fp = fopen("instructions.txt", "r"); fgets(line, sizeof(line), stdin); n_instr = atoi(line); for(int i=0;i<n_instr;i++) { fgets(line, sizeof(line), stdin); char * opcode = strtok(line, " \n"); if(!strcmp(opcode,"PUSH")){ operand = atoi(strtok(NULL, " ")); push(stack,&stk_top,operand); } else if(!strcmp(opcode,"POP")){ printf("%d\n",pop(stack,&stk_top)); } else if(!strcmp(opcode,"ADD")){ int n1 = pop(stack,&stk_top); int n2 = pop(stack,&stk_top); push(stack,&stk_top,n1 + n2); } else if(!strcmp(opcode,"SUB")){ int n1 = pop(stack,&stk_top); int n2 = pop(stack,&stk_top); push(stack,&stk_top,n2 - n1); } } fclose(fp); while(stk_top>=0)printf("%d\n",pop(stack,&stk_top)); return 0; } int push(int * stack,int * stk_top,int operand){ if(*stk_top<STK_SIZE-1){ (*stk_top)++; stack[*stk_top]=operand; return 0; } return 1; } int pop(int * stack,int *stk_top){ if(*stk_top>-1){ int n = stack[*stk_top]; (*stk_top)--; return n; } return 0; } 我使用上面的代码来模拟机器语言指令 PUSH 和 POP 、ADD 和 SUB。对于每个 POP 指令,输出从堆栈中弹出的值。处理完所有指令后,打印堆栈的最终内容,从上到下,每行一个值。 尝试返回整数值,但它与堆栈内容混淆,有什么解决办法吗? 您可以将 pop() 更改为: bool pop(int *stack, int *stk_top, int *old_top) { if (*stk_top > -1) { if (old_top) *old_top = stack[*stk_top]; (*stk_top)--; return true; // operation succeeded } return false; // operation failed } 您可以选择使用旧的堆栈顶部值或通过简单地创建 old_top NULL: 来丢弃它 // Print all stack elements (except the top one) while deleting them altogether. // Discard the first element (i.e. the top) pop(stack, &stk_top, NULL); int old_top = 0; while (pop(stack, &stk_top, &old_top)) printf("%d ", old_top);

回答 1 投票 0

在c中使用堆栈进行快速排序

在 C 作业中,我需要使用堆栈而不使用递归来实现快速排序。 这是函数头(arr是要排序的数组,size是它的大小): 无效 StackBasedQuickSort(int*...

回答 2 投票 0

堆栈实现错误Leetcode第20题

leetcode 的问题是: 给定一个仅包含字符 '(', ')', '{', '}', '[' 和 ']' 的字符串 s,确定输入字符串是否有效。 输入字符串在以下情况下有效: 左括号必须是

回答 4 投票 0

PUSH 和 POP 括号中的寄存器顺序

ARM 文档对 PUSH 和 POP 做了如下说明 PUSH 将寄存器存储在堆栈上,其中编号最小的寄存器 使用最低的内存地址和最高编号的寄存器 使用...

回答 2 投票 0

如何将混合有中缀和前缀子表达式的字符串转换为所有前缀子表达式?

考虑我有一个以这种格式编写的字符串公式:“func(a+b,c)”,其中 func 是自定义函数,该字符串包含中缀(即 +)和前缀(即 func )

回答 1 投票 0

无法找出我的代码中的错误

我正在尝试评估逆波兰表示法问题。我似乎遇到了运行时错误: 第 171 行:字符 16:运行时错误:引用绑定到未对齐的地址 0xbebebebebebec0ba ...

回答 1 投票 0

在 Golang 中的结构体中初始化固定大小的数组

我正在学习 Golang,我正在尝试构建一个 LIFO 堆栈。我创建了一个 Stack[Tany] 接口和一个dynamicStack[Tany] 结构。 DynamicStack 有一个 data []T 字段和一个索引 int 字段。当

回答 1 投票 0

“基于两个堆栈的队列”有什么意义?

我见过使用2个堆栈(入站和出站)实现的队列(在书籍和计算机科学课程中)。在这种数据结构中,当我们从队列中弹出数据(出队)时,我们首先压入

回答 2 投票 0

NOP 雪橇如何工作?

我找不到回答这个问题的好来源。我知道 nop sled 是一种用于在缓冲区溢出攻击中规避堆栈随机化的技术,但我无法理解它是如何实现的

回答 3 投票 0

局部变量如何在内存中存储和返回(python)?

我总是使用Python而不考虑它的内存管理。但是,我对它如何处理内存有一个很大的疑问。 def func1(): 本地变量 = 1 print(id(local_var)) # 本地内存地址...

回答 1 投票 0

从 pop() 方法返回更新的堆栈以及顶部元素的原因

这个: def pop(self) -> 元组[任意,堆栈]: """从堆栈中弹出,返回一个(elem,更新的堆栈)对。""" 返回更新后的堆栈的原因是什么

回答 1 投票 0

为什么我的代码没有输出? [已关闭]

#包括 #包括 #包括 使用命名空间 std; int main(){ 堆栈堆栈1; 字符串str; 计算<<"Enter a string&qu...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.