我的任务是使用单链表实现堆栈,将中缀形式的字符串转换为后缀形式。为简单起见,此字符串不包含任何空格。
简而言之,我的算法是:
从中缀字符串中读取字符
按操作顺序创建一个带有字符及其相关优先级的临时节点
如果它是一个操作而不是数字/如果它是一个数字,则将它推入堆栈,自动将其附加到后缀字符串
每次将字符压入堆栈时,如果堆栈的顶层节点的优先级高于下一个字符的临时节点,则从堆栈中弹出它并将其附加到后缀字符串。
这些步骤适用于手动进行中缀后缀。 每当我尝试运行我的代码时,我都会收到错误6 SIGABRT。我的代码应该很容易理解。任何人都可以告诉我这个错误意味着什么,为什么我得到它,以及如何修复它以便我的代码正确输出后缀字符串?
import { Injectable } from '@angular/core';
import { Hero } from './hero';
import { HEROES } from './mock-heroes';
@Injectable()
export class HeroService {
getHeroes(): Promise<Hero[]> {
return Promise.resolve(HEROES);
}
答案 0 :(得分:0)
你为什么要在推送中“删除v”?这将删除您刚刚创建的节点。