xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 5KB
    文件類型: .c
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-05-12
  • 語言: 其他
  • 標(biāo)簽:

資源簡介

問題描述   中綴表達(dá)式就是我們通常所書寫的數(shù)學(xué)表達(dá)式,后綴表達(dá)式也稱為逆波蘭表達(dá)式,在編譯程序?qū)ξ覀儠鴮懙某绦蛑械谋磉_(dá)式進行語法檢查時,往往就可以通過逆波蘭表達(dá)式進行。我們所要設(shè)計并實現(xiàn)的程序就是將中綴表示的算術(shù)表達(dá)式轉(zhuǎn)換成后綴表示,例如,將中綴表達(dá)式 (A 一 (B*C 十 D)*E) / (F 十 G ) 轉(zhuǎn)換為后綴表示為: ABC*D十E*—FG十/ 注意:為了簡化編程實現(xiàn),假定變量名均為單個字母,運算符只有+,-,*,/ 和^(指數(shù)運算),可以處理圓括號(),并假定輸入的算術(shù)表達(dá)式正確。 要求:使用棧數(shù)據(jù)結(jié)構(gòu)實現(xiàn) ,輸入的中綴表達(dá)式以#號結(jié)束 輸入 整數(shù)N。表示下面有N個中綴表達(dá)式 N個由單個字母和運算符構(gòu)成的表達(dá)式 輸出 N個后綴表達(dá)式。

資源截圖

代碼片段和文件信息

#include
#include?
#include?
#define?Error(?Str?)????????FatalError(?Str?)
#define?FatalError(?Str?)???fprintf(?stderr?“%s\n“?Str?)?exit(?1?)

/*?START:?fig3_39.txt?*/
????????#ifndef?_Stack_h
????????#define?_Stack_h

typedef?int?ElementType;
struct?Node;
????????typedef?struct?Node?*PtrToNode;
????????typedef?PtrToNode?Stack;

????????int?IsEmpty(?Stack?S?);
????????Stack?CreateStack(?int?MaxElements?);
????????void?DisposeStack(?Stack?S?);
????????void?MakeEmpty(?Stack?S?);
????????void?Push(?ElementType?X?Stack?S?);
????????ElementType?Top(?Stack?S?);
????????void?Pop(?Stack?S?);

????????#endif??/*?_Stack_h?*/

/*?END?*/

????????struct?Node
????????{
????????????ElementType?Element;
????????????PtrToNode???Next;
????????};

????????int
????????IsEmpty(?Stack?S?)
????????{
????????????return?S->Next?==?NULL;
????????}
????????Stack
????????CreateStack(?int?MaxElements?)
????????{
????????????Stack?S;

S?=?(Stack)malloc(sizeof(struct?Node));
????????????if(?S?==?NULL?)
????????????????FatalError(?“Out?of?space!!!“?);
????????????S->Next?=?NULL;
????????????return?S;
????????}

????????void
????????MakeEmpty(?Stack?S?)
????????{
????????????if(?S?==?NULL?)
????????????????Error(?“Must?use?CreateStack?first“?);
????????????else
????????????????while(?!IsEmpty(?S?)?)
????????????????????Pop(?S?);
????????}

????????void
????????DisposeStack(?Stack?S?)
????????{
????????????MakeEmpty(?S?);
????????????free(?S?);
????????}

????????void
????????Push(?ElementType?X?Stack?S?)
????????{
????????????PtrToNode?TmpCell;

????????????TmpCell?=?(PtrToNode)malloc(?sizeof(?struct?Node?)?);
????????????if(?TmpCell?==?NULL?)
????????????????FatalError(?“Out?of?space!!!“?);
????????????else
????????????{
????????????????TmpCell->Element?=?X;
????????????????TmpCell->Next?=?S->Next;
????????????????S->Next?=?TmpCell;
????????????}
????????}
????????ElementType
????????Top(?Stack?S?)
????????{
????????????if(?!IsEmpty(?S?)?)
????????????????return?S->Next->Element;
????????????Error(?“Empty?stack“?);
????????????return?0;??/*?Return?value?used?to?avoid?warning?*/
????????}
????????void
????????Pop(?Stack?S?)
????????{
????????????PtrToNode?FirstCell;

????????????if(?IsEmpty(?S?)?)
????????????????Error(?“Empty?stack“?);
????????????else
????????????{
????????????????FirstCell?=?S->Next;
????????????

評論

共有 條評論

相關(guān)資源