代碼實(shí)驗室
成長中的分析員,記錄實(shí)驗人生
C++博客
首頁
新隨筆
新文章
聯(lián)系
聚合
管理
posts - 101, comments - 57, trackbacks - 0
再做2269
看了數(shù)據(jù)結(jié)構(gòu)一書,果然有所提升。在講到堆棧的應(yīng)用時提到后綴表達(dá)式,令我茅塞頓開!
想起poj的2269,正好書上又沒有給出代碼。于是乎自己寫了一遍。雖然還是沒有用編譯器的思想來得簡約明了。但個人認(rèn)為這種這也算是一種不錯的實(shí)現(xiàn)方法了。關(guān)于“中綴到后綴的部分”是為解題的關(guān)鍵,但是這個地方還是寫得比較垃圾,不過思想一致就行,其他的待以后提高了再做改進(jìn)吧,看官莫笑~
#include
"
stdio.h
"
//
DWORD 0 0 0 0
1
1 1 1 1 32bit
//
Z
D C B A
//
1
( * - +
#define
ADD 0x80000001
#define
SUB 0x80000002
#define
MUL 0x80000004
#define
LBC 0x80000008
#define
MAX_SIZE 255
int
queue[MAX_SIZE];
int
queue_pointer
=
0
;
int
stack[MAX_SIZE];
int
stack_pointer
=
0
;
void
deal_infix(
char
*
pline)
{
int
temp;
stack_pointer
=
0
;
queue_pointer
=
0
;
do
{
switch
(
*
pline)
{
case
'
{
'
:
temp
=
0
;
break
;
case
'
}
'
:
queue[queue_pointer
++
]
=
temp;
break
;
case
'
+
'
:
while
(stack_pointer
&&
LBC
!=
stack[stack_pointer
-
1
])
{
queue[queue_pointer
++
]
=
stack[
--
stack_pointer];
}
stack[stack_pointer
++
]
=
ADD;
break
;
case
'
-
'
:
while
(stack_pointer
&&
LBC
!=
stack[stack_pointer
-
1
])
{
queue[queue_pointer
++
]
=
stack[
--
stack_pointer];
}
stack[stack_pointer
++
]
=
SUB;
break
;
case
'
*
'
:
if
(stack_pointer
&&
MUL
==
stack[stack_pointer
-
1
])
{
queue[queue_pointer
++
]
=
stack[
--
stack_pointer];
}
stack[stack_pointer
++
]
=
MUL;
break
;
case
'
(
'
:
stack[stack_pointer
++
]
=
LBC;
break
;
case
'
)
'
:
while
(LBC
!=
stack[stack_pointer
-
1
])
{
queue[queue_pointer
++
]
=
stack[
--
stack_pointer];
}
--
stack_pointer;
break
;
default
:
temp
|=
1
<<
(
*
pline
-
'
A
'
);
break
;
}
}
while
(
*
(
++
pline));
while
(stack_pointer)
{
queue[queue_pointer
++
]
=
stack[
--
stack_pointer];
}
}
void
deal_postfix()
{
// 此處已被省略
}
void
output()
{
int
i;
printf(
"
{
"
);
for
(i
=
0
; i
<
'
Z
'
-
'
A
'
+
1
;
++
i)
{
if
(stack[
0
]
&
1
<<
i)
printf(
"
%c
"
, i
+
'
A
'
);
}
printf(
"
}\n
"
);
}
int
main()
{
char
line[MAX_SIZE];
while
(EOF
!=
scanf(
"
%s
"
, line))
{
deal_infix(line);
deal_postfix();
output();
}
return
0
;
}
posted on 2009-09-30 00:52
margin
閱讀(122)
評論(0)
編輯
收藏
引用
只有注冊用戶
登錄
后才能發(fā)表評論。
【推薦】100%開源!大型工業(yè)跨平臺軟件C++源碼提供,建模,組態(tài)!
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Copyright ©2025 margin Powered by:
博客園
模板提供:
滬江博客
<
2009年10月
>
日
一
二
三
四
五
六
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
給我留言
查看公開留言
查看私人留言
隨筆檔案
2011年5月 (5)
2011年4月 (1)
2011年3月 (1)
2011年1月 (1)
2010年12月 (3)
2010年11月 (2)
2010年10月 (6)
2010年9月 (5)
2010年8月 (5)
2010年7月 (4)
2010年6月 (1)
2010年5月 (1)
2010年4月 (1)
2010年3月 (2)
2009年12月 (1)
2009年11月 (1)
2009年10月 (7)
2009年9月 (5)
2009年8月 (5)
2009年7月 (1)
2009年6月 (3)
2009年5月 (7)
2009年4月 (1)
2009年3月 (6)
2009年2月 (3)
2009年1月 (4)
2008年12月 (7)
2008年11月 (6)
2008年10月 (6)
文章分類
C/C++(7)
Misc(2)
Pathon(4)
PHP
逆向工程(7)
數(shù)據(jù)結(jié)構(gòu) & 算法
文章檔案
2012年9月 (1)
2010年4月 (2)
2010年1月 (2)
2009年11月 (2)
2009年9月 (1)
2008年10月 (1)
2008年8月 (1)
2008年5月 (1)
2008年4月 (3)
2008年3月 (4)
2007年8月 (3)
收藏夾
這里沒有分類(1)
常去的壇子
CVC電腦病毒論壇
很多人說我是AV,我告訴他們:別瞧不起人,我們也能創(chuàng)造價值
安全焦點(diǎn)
黑客聚集的地方,一般是好酒最多的地方...
看雪論壇
國內(nèi)最強(qiáng)的加密解密論壇,成醉其中經(jīng)常夜不歸宿
驅(qū)動開發(fā)論壇
厭倦了啤的朋友們,來我們來整點(diǎn)白的...痛痛快快的BSOD也好過隔鞋瘙癢!
我的朋友
Sen的blog
IDE方面資深的受害者...經(jīng)常為一個變量的定義找不著北的痛苦程序員(深表同情)
老羅的blog
良師益友,千年水牛,引擎猛男,分析怪獸,墨鏡酷哥,臺球高手....
搜索
最新評論
1.?re: xmlrpc搞定文件傳輸
sb
--爸
伊人久久大香线蕉综合5g
|
国产精品视频久久久
|
人妻无码久久精品
|
欧美午夜精品久久久久免费视
|
久久激情亚洲精品无码?V
|
香蕉99久久国产综合精品宅男自
|
热久久视久久精品18
|
狠狠色丁香久久综合婷婷
|
色综合久久天天综线观看
|
91精品国产综合久久婷婷
|
99久久国产精品免费一区二区
|
九九精品99久久久香蕉
|
午夜福利91久久福利
|
国产 亚洲 欧美 另类 久久
|
久久精品国产99国产精品亚洲
|
国産精品久久久久久久
|
国产精品美女久久久久久2018
|
2021国内精品久久久久久影院
|
亚洲天堂久久精品
|
久久亚洲日韩精品一区二区三区
|
久久男人AV资源网站
|
婷婷久久综合九色综合98
|
午夜天堂av天堂久久久
|
久久久久亚洲AV无码专区首JN
|
久久精品国产一区二区三区不卡
|
久久综合丁香激情久久
|
91精品国产高清久久久久久io
|
人妻无码αv中文字幕久久
|
手机看片久久高清国产日韩
|
亚洲国产精品久久久久婷婷老年
|
久久精品亚洲一区二区三区浴池
|
怡红院日本一道日本久久
|
久久精品成人免费看
|
久久精品国产91久久麻豆自制
|
国产精品热久久毛片
|
aaa级精品久久久国产片
|
国产精品久久久天天影视
|
精品久久久噜噜噜久久久
|
国产成人精品白浆久久69
|
9久久9久久精品
|
久久久久国产视频电影
|