用栈和队列实现魔王语言

本文讲述了如何利用栈和队列实现魔王语言的转换。通过分析问题,使用栈处理括号内的倒序输出,队列则用于最终的翻译。虽然数组也能解决问题,但队列在处理过程中更加便利。作者强调逻辑思考的重要性,认为编程的魅力在于解决问题的多样性,并分享了对数据结构从讨厌到喜爱的心路历程,同时提倡坚持的习惯养成。
摘要由CSDN通过智能技术生成

接上一篇,链表的下一章是栈和队列,当然这一章还有个魔王语言的问题,也是当年的作业。别说实现了,当时连题目也没读懂,当时也太low了吧。ok,花了时间对这一章的内容进行了学习,并重新进行魔王语言的实现。


[问题描述]   
有一个魔王总是使用自己的一种非常精练而抽象的语言讲话,没人能听的懂。但他的语言是可以逐步解释成人能懂得语言的,因为他的语言是由以下两种形式的规则由人的语言逐 步抽象上去的:    
  (1)α->β1β2...βn 
(2)(θδ1δ2...δn)->θδnθδn-1...θδ1θ 
   
  在这两种形式中,从左到右均表示解释;从右到左表示抽象。试写一个魔王解释系统,把      他的话解释成人能听懂得话。 

  [基本要求]    
  用下述两条具体规则和上述规则形式(2)实现。设大写字母表示魔王语言的词汇;小写字    
  母表示人的语言词汇;希腊字母(a,b1,s,y1等)表示可以用大写或小写字母代换的变量。    
  魔王语言可含人的词汇。      (1)B->tAdA        (2)   A->sae    [测试数据]      B(einxgz)B    
  解释成     tsaedsaeezegexeneietsaedsae  

自己感觉这个题目用栈和队列的意向不是那么明显,但既然要用,就分析一下:用栈主要用来处理括号里的字符,因为里面是倒叙输出的,这就想到了栈的先进后出的特点,队列主要是对最终输出的一个翻译,

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值