#include
#include
#include
#include
#include
#define stack_size_normal 100
#define bianliang_max 20
#define str_max 60
int zuhe[bianliang_max];//變數的取值組合陣列定義;
int n;//變數個數;
//根據表示式建立的二叉樹的結點定義;
typedef struct btdnode*bitree;
//識別表示式使用的堆疊定義,它存放的都是樹的結構;
typedef struct lnode_optrsqstack;
//用於產生變數的各種取值組合;
void creatzuhe(int n)
j=j-1;
num=n-num;
while(j>=0)
}//自底向上地根據運算子地優先順序來建立分子樹函式;當邏輯表示式讀完後-子根zigen就是一棵完整的二叉樹
int k=0;//建樹的標誌,k=1表示第一次建立分子樹,要對左右孩子的指標域處理
void create(bitree &zigen,bitree l,bitree r)
if(int(r->data)>=65&&int(r->data)<=90)}}
//邏輯運算子的優先順序判別;
char youxianji(char lie,char hang)
;for(i=0;i<7;i++)
if(bijiao[0][i]==lie)
break;
for(j=0;j<7;j++)
if(bijiao[j][0]==hang)
break;
return bijiao[j][i];
}//對操作符棧和變數堆疊的操作;
void creatstack(sqstack &st)
void push(sqstack &st,bitree e)
void pop(sqstack &st,bitree &e)
void gettop(sqstack &st,bitree &e)
//重言式的識別函式;
void creattree(char s,bitree &tree)
else if(int(*s)>90||int(*s)<65)
else s=s-1;
break;}}
s++;
}tree=theta;
}//根據變數的取值組合並利用邏輯表示式的性質對樹進行求值
int value_tree(bitree tree)
}//使用者設定變數的一種取值;
void user()
}void main()
}
資料結構實習題目
資料結構課程設計任務書 實驗方式與基本要求 設計中要求綜合運用所學知識,上機解決一些與實際應用結合緊密的 規模較大的問題,通過分析 設計 編碼 除錯等各環節的訓練,深刻理解 牢固掌握資料結構和演算法設計技術,掌握分析 解決實際問題的能力。一 問題分析和任務定義 對問題的描述應避開具體的演算法和涉及的...
記錄資料結構實習之一元多項式計算
一元多項式計算 c語言 題目 一元多項式計算 功能要求 1 能夠按照指數降序排列建立並輸出多項式 2 能夠完成兩個多項式的相加 相減,並將結果輸出 程式 include include define null 0 typedef struct term term,linklist term為一個新型...
7 1 函式式資料結構
7.1 函式式資料結構 用函式程式設計,程式處理的資料總是儲存在資料結構中。資料結構和物件之間的區別在於,資料結構公開了表示資料 從名字就可以知道 的結構 知道了資料的結構便於寫處理的 但要到第九章才討論,f 還提供了一種封裝結構的方法,如同物件導向程式設計,當我們想從庫中匯出 f 資料結構,或者用...
資料結構 左式堆
左式堆 同二叉堆一樣具有結構性和堆序性。惟一的區別是 左式堆不是理想平衡的,而實際上是趨於不平衡的。零路徑長 npl x 從節點x到一個沒有兩個兒子節點的最短路徑長。左式堆要求對於堆中的每一個節點x,左兒子的零路徑長至少與右兒子的零路徑長一樣大。左式堆的結構宣告 struct treenode ty...
資料結構 逆波蘭式
很久沒有關注演算法和資料結構,大部分知識都已經忘記了 是時間好好回爐一下了,說實話幹讀資料機構這本書還是挺枯燥而且這本書原理性比較多,有一定的難度。這不剛看到逆波蘭式廢了好大勁才搞懂,老了。逆波蘭式 reverse polish notation,rpn,或逆波蘭記法 也叫字尾表示式 將運算子寫在運...