部分思想參考了以資料結構教材上的為基礎,進行修改。書上的棧的表示式求值個人認為挺不錯了,比較好理解。
總共有三個檔案,分別時code.h、code.cpp和main.cpp檔案,這三個檔案需要放在同乙個資料夾下
code.h
code.cpp(核心**)#include #include #include #include using namespace std;
int n=8;
char a1[9]=;
char a2[8][8]=,,,
,,,,
};typedef struct stack1
stack1,*linkstack1;
typedef struct stack2
stack2,*linkstack2;
void initstack1(linkstack1 &s1);
void initstack2(linkstack2 &s2);
void pushstack1(linkstack1 &s1,char data);
void pushstack2(linkstack2 &s2,double data);
void popstack1(linkstack1 &s1,char &data);
void popstack2(linkstack2 &s2,double &data);
char gettopstack1(linkstack1 s1);
double gettopstack2(linkstack2 s2);
int getindex(char data);
char precede(char data1,char data2);
double operate(double a,char ch,double b);
int numberhandle(int num1,int num2);
void strinsert(char *str,int pos,char data);
void strhandle(char *str);
double expressvalue(char *str,linkstack1 &s1,linkstack2 &s2);
main.cpp#include "code.h"
void initstack1(linkstack1 &s1)
void initstack2(linkstack2 &s2)
void pushstack1(linkstack1 &s1,char data)
void pushstack2(linkstack2 &s2,double data)
void popstack1(linkstack1 &s1,char &data)
void popstack2(linkstack2 &s2,double &data)
char gettopstack1(linkstack1 s1)
double gettopstack2(linkstack2 s2)
int getindex(char data)
return -1;
}char precede(char data1,char data2)
double operate(double a,char ch,double b)
else if(ch=='-')
else if(ch=='*')
else if(ch=='/')
else }
int numberhandle(int num1,int num2)
void strinsert(char *str,int pos,char data)
str[pos]=data;
str[len+1]='\0'; }}
void strhandle(char *str)
else if(str[i]=='.')
else
else
}sch=precede(gettopstack1(s1),str[i]);
switch(sch)
}} return gettopstack2(s2);
}
#include "code.cpp"
int main()
C語言棧 多位數的表示式求和
include include include const char oper 7 define ok 1 define error 0 typedef char selemtype typedef int status typedef struct snode snode,linkstack do...
鏈棧以及中綴表示式轉字尾表示式並求值的鏈棧實現
多鏈棧棧的應用 表示式求值 為了便於操作,採用帶頭結點的單鏈表實現棧,把鍊錶的頭指標作為棧頂指標。採用鏈棧不必預先估計棧的最大容量,只要系統有可用的空間,鏈棧就不會出現溢位的情況。對於鏈棧,使用完畢後,應該釋放其空間。鏈棧的各種基本操作的實現與單鏈表的操作類似。鏈棧分為一般鏈棧和多鏈棧。一般鏈棧型別...
C語言的基於棧實現的表示式求值
一 目的 理解中綴表示式求值的過程 理解中綴轉字尾表示式求值的過程 掌握堆疊的應用 二 問題描述 綴表示式,其中包含括號,加減乘除,乘方等運算,利用中綴表示式,對表示式分析並求值 入的中綴表示式轉換為字尾形式,顯示字尾形式,並通過字尾形式求值 三 資料結構 運算子結構體 typedef struct...