C++
白开水最甜
这个作者很懒,什么都没留下…
展开
-
使用前序序列和后序序列构造一个二叉树
TNode* InPreToTree(char *pa, char *ia, int p1, int p2, int i1, int i2){ /*请在BEGIN和END之间实现你的代码*/ /*****BEGIN*****/ TNode* root=new TNode; root->data=pa[p1]; root->left=NULL; root->right=NULL; if(p1==p2) return root;//如果p1==p2,则说明此.原创 2021-11-29 20:58:20 · 559 阅读 · 0 评论 -
第1关:实现朴素的字符串匹配 and 第2关:实现KMP字符串匹配
样例输入: string tri 样例输出: Location: 1int FindSubStr(char* t, char* p)/*从字符串t查找子字符串p。字符串以数值结尾,例如p="str",那么p[0]='s',p[1]='t',p[2]='r',p[3]=0。采用朴素的匹配算法。返回子字符串第一次出现的位置,例如t="string ring",p="ring",则返回2。若没有找到,则返回-1。*/{ // 请在此添加代码,补全函数FindSubStr /*原创 2021-11-23 19:47:50 · 4234 阅读 · 1 评论 -
第2关:栈的应用-计算后缀表达式
样例输入: 12+96-* 样例输出: result = 9.000000double ComputePostfix(char* s){ // ÇëÔÚ´ËÌí¼Ó´úÂ룬²¹È«º¯ÊýComputePostfix£¬¼ÆËãºó׺±í´ïʽ /********** Begin *********/ int i=0; T a,b; double d,res; LinkStack* so=LS_Create(); LinkStack*.原创 2021-11-18 21:08:57 · 1115 阅读 · 2 评论 -
第1关:栈的应用 - 计算中缀表达式
样例输入: (1+2)*(9-6) 样例输出: result = 9.000000基本思路:1、遇到数字进栈;2、遇到( 进栈;3、遇到+或-,判断栈顶元素是不是(,是就进栈,不是就计算,确保在+-入栈前,前面的运算都已完成;4、遇到*或/,如果栈顶元素是*或/就计算,否则进栈5、遇到),如果栈顶元素不是(,就进行计算,直到遇到(为止。6、最后将剩余的运算符进行计算double ComputeInfix(char* s)//计算中缀表达式{ // 请在此添加代码原创 2021-11-13 16:35:13 · 2549 阅读 · 0 评论