岁月本长,而忙者自促;天地本宽,而卑者自隘;风花雪月本闲,而劳攘者自冗。
 
 
  • 网志分类
  • » 查看所有日志
    » ACM
    » dailylife
    » 汇编实习
    » 被遗忘的角落
  • 最新评论
  • 站内搜索
  • 友情链接
  • » 我的歪酷 非非共享界
    » 踏雪赤兔
    » c手册,函数应有尽有
    » 小胖
    » BunnyQ
    » WTommy的无悔青春
    » Roba
    » tashj

    订阅 RSS

    歪酷博客

    0024958

    haomoon @ 2006-09-10 13:50

    设以’@’字符作为结束符的中缀算术表达式已经保存在s1字符串中,转换后得到的后缀算术表达式拟存于s2字符串中。由中缀表达式转换为后缀表达式的规则可知:转换前后,表达式中的数值项的次序不变,而运算符的次序发生了变化,由处在两个运算对象的中间变为处在两个运算对象的后面,同时去掉了所有的括号。为了使转换正确,必须设定一个运算符栈,并在栈底放入一个特殊算符,假定为’@’字符,让它具有最低的运算符优先级,假定为数值0,此栈用来保存扫描中缀表达式得到的暂不能放入后缀表达式中的运算符,待它的两个运算对象都放入到后缀表达式以后,再令其出栈并写入到后缀表达式中。
       把中缀表达式转换为后缀表达式算法的基本思路是从头到尾地扫描中缀表达式中的每个字符,对于不同类型的字符按不情况进行处理。若遇到的是空格则认为是分隔符,不需要进行处理;若遇到的是数字或小数点,则直接写入到s2中,并在每个数值的最后写入一个空格;若遇到的是左括号,则应把它压入到运算符栈中,待以它开始的括号内的表达式转换完毕后再出栈;若遇到的是右括号,则表明括号内的中缀表达式已经扫描完毕,把从栈底直到保存着的对应左括号之间的运算符依次退栈并写入s2串中;若遇到的是运算符,当该运算符的优先级大于栈顶运算符的优先级(加减运算符的优先级设定为1,乘除运算符的优先级设定为2,在栈中保存的特殊运算符’@’和’(’的优先级设定为0)时,表明该运算符的后一个运算对象还没有被扫描并放入到s2串中,应把它暂存于运算符栈中,待它的后一个运算对象从s1串中读出并写入到s2串中后,再另其出栈并写入s2串中;若遇到的运算符的优先级小于等于栈顶运算符的优先级,这表明栈顶运算符的两个运算对象已经被保存到s2串中,应将栈顶运算符退栈并写入到s2串中,对于新的栈顶运算符仍继续进行比较和处理,直到被处理的运算符的优先级大于栈顶运算符的优先级为止,然后另该运算符进栈即可。
    按照以上过程扫描到中缀表达式结束符’@’时,把栈中剩余的运算符依次退栈并写入到后缀表达式中,再向s2写入表达式结束符’@’和字符串结束符’{post.abstract}’,整个转换过程就处理完毕,在s2中就得到了转换成的后缀表达式。


     
    haomoon @ 2006-09-09 20:28

       从明天起,做一个幸福的人
        喂马,劈柴,周游世界
        从明天起,关心粮食和蔬菜
        我有一所房子,面朝大海,春暖花开
     
        从明天起,和每一个亲人通信
        告诉他们我的幸福
        那幸福的闪电告诉我的
        我将告诉每一个人
     
        给每一条河每一座山取一个温暖的名字
        陌生人,我也为你祝福
        愿你有一个灿烂的前程
        愿你有情人终成眷属
        愿你在尘世获得幸福
        我只愿面朝大海,春暖花开




     
    haomoon @ 2006-09-07 12:21

    今天晚上,一个同学问怎么把一个中缀表达式转换成后缀表达式,再输出结果的问题。
    好几天没编程了,觉得很熟悉又很生疏,不知道如何去写。
    现在的问题是怎么把中缀转换成后缀,怎么把数字从字符串里提取出来。
    得好好想想。不练习就退化了。


     
    haomoon @ 2006-08-31 22:46

    牛奶和咖啡的爱情
    [ 2006-6-24 6:38:50 | By: 橘子 ]
     

    这是一个很完美的组合 很美味的搭配 牛奶有了咖啡而香醇 咖啡也因牛奶而甜美 

    女孩是牛奶 男孩被女孩看作咖啡 一天他们在某时某地相遇 他们彼此心心相吸 都觉得自己找到了生命中的另一半 而女孩也因此为男孩折断了升入天堂的翅膀 女孩希望只要有他在身边 有对他的思念就足够了 可她怕牛奶会变质 怕男孩对她失去兴趣 也不知自己在聊些什么所以然 男孩也沉默寡言 这也算无形的默契吗 男孩偶尔带她见他那些哥们吃吃饭 聊聊天  女孩不知道这样的生活可以持续多久 但她仅仅想要满足现在 

    "突然一天 咖啡消失了 留下牛奶一个人独自流浪.....没有咖啡的搀杂,牛奶喝起来会是什么味道"...... 
     
    失恋后的女孩心情很糟 一次女孩喝酒喝了好多 她觉得失恋的人应该是这样  她第一次尝到了呕吐的滋味 心那么那么疼  身体瘫软似泥嘴里口渴难奈 而身边没有一个可以搀扶的对象 女孩认为自己很坚强 但是眼泪还是忍不住流下 女孩抬头看看天空 自己对自己说 下雨了....

    "有眼泪装在心上 会开出用该的花 可以在配备的时光 闭上眼睛闻到一种芬芳"

    女孩自己都不知道什么时候开始喝上咖啡 喜欢上咖啡 突然间明白了自己已经习惯了咖啡的陪伴......

    牛奶加咖啡味道才会美味 你是咖啡 我是牛奶 牛奶和咖啡的爱情.......



     
    haomoon @ 2006-08-31 22:36

    不知为什么,有点烦,早上有点慌慌的感觉,总觉得要有什么事情发生。
    以前的不开心又涌上来......
    总是在想,以前如果如果怎么样,却知道,过去的,是永远不能再回头了。




     
    haomoon @ 2006-08-31 22:12

    昨天问了一下老师,还有BunnyQ,大概有了一点思路,只要写个显示矩形的子程序,然后调用就行了。盘子的显示与消失只需改变颜色值。
    今天在图书馆待了一天,本想查资料,无奈图书馆的小说太诱人了,厚厚的一摞书被我解决掉了,只是汇编一点都没看。感觉自己真实堕落,以后不能去图书馆了,在那管不住自己。唉,自制力太差。明天还是去自习室好了。


     
    haomoon @ 2006-08-29 18:11

    这是我的实习作业
    /**************************************************
    汉诺塔问题(又称河内塔问题)是根据一个传说形成的一个问题:
    . 有三根杆子ABCA杆上有若干碟子; 每次移动一块碟子,小的只能叠在大的上面; 把所有碟子从A杆全部移到C杆上,求移动的方法。碟子的个数NN>=1 AND <=5)由键盘输入,打印出移动的序列,如下:

    N is 3, so there are there.

    1. move No. 3 from to A to C.   (其中三表示碟子编号,碟子由小到大从1开始依次编号,A,B,C代表三个柱子)

    2. mov No. 2 from C to B.

    ... ...

    Move OK!
    *********************************************
    这个月的实习,听起来很轻松,只有这么一道题,一周也就三个半天有课,但感觉上东西还是很多的。
    以前对汇编的了解不多,学得时候不会,图形,发声设计之类的东西老师也没讲,半年的时间,就算以前知道点,现在也都忘了。看来一切都得自己学了。
    汉诺塔的题目很好理解,只要编个和文曲星上的游戏差不多的程序就行了。现在发愁的是,我该看些什么?
    关键是动画的东西怎么设计出来,书上只是那么简单的说了两句。唉,烦啊。这个月看来不好熬了。



     
    haomoon @ 2006-08-11 21:46

    这道题实质是归并排序.涉及到一个求求逆序数的问题.
    逆序数定义:
    对于数列 A[], 当 A > A[j] ( i < j ),我们称A , A[j] 为一对逆序数.
    如何用归并排序求逆序数:
    观察排序前的数列,它当中的逆序对可以分为3类:1.两个数都在前一半的;2.两个数都在后一半的;3.一个数在前一半,一个数在后一半的。前两种情况的逆序对的个数可在对那一半的归并排序中计算,对整个序列的归并排序的主程序中只需计算第3种情况。
    ***注意到归并过程中,当第二个队列的队首元素小于第一个队列的队首元素时,第二个队列的队首元素与第一个
    队列中剩下的元素均构成了逆序对,这时在答案上加上第一个队列中剩余元素的个数即可。***
    只加这么一条语句,就可以在归并排序的过程中顺便求出逆序对的个数了。