zsw.rar

  • PUDN用户
    了解作者
  • Visual C++
    开发工具
  • 178KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 5
    下载次数
  • 2009-11-20 22:21
    上传日期
这个文件用来进行的实现串的源代码,请各位互相学习交流。本人有不足之处请多多包涵
zsw.rar
  • zsw数据结构实验
  • 实验4 串
  • kmp.cpp
    1.4KB
  • next.cpp
    882B
  • 实验1 线性表
  • 题目2顺序表的合并.cpp
    2.3KB
  • 题目4.cpp
    2.5KB
  • 题目3.cpp
    672B
  • 题目5.cpp
    1.6KB
  • 题目1正确.cpp
    2.4KB
  • 题目六.cpp
    1.2KB
  • 实验3 队列
  • bank.cpp
    492B
  • 循环队列.cpp
    2.8KB
  • Debug
  • Cpp1.pch
    209KB
  • Cpp1.obj
    8KB
  • vc60.idb
    33KB
  • vc60.pdb
    52KB
  • Cpp1.pdb
    433KB
  • Cpp1.ilk
    182.7KB
  • Cpp1.exe
    180.1KB
  • 新建文件夹
  • 线性表
  • Cpp1.cpp
    1.9KB
  • 实验2 堆栈
  • 题目4.cpp
    2.6KB
  • 题目3.cpp
    2.6KB
  • 题目1.cpp
    3KB
  • 题目5.cpp
    3.1KB
  • 题目2.cpp
    1.5KB
  • 实验2.cpp
    2KB
内容介绍
#include<stdio.h> #include<math.h> #include<malloc.h> #define MAXSIZE 20 #define OK 1 #define ERROR 0 typedef struct{ int data[MAXSIZE]; int top; int base; }SqStack; SqStack optr,opnd; int InitStack(SqStack *s) { s->top=0; s->base=0; return OK; } int Push(SqStack *s,int x) { s->data[s->top]=x; s->top++; return OK; } int Pop(SqStack *s) { int e; s->top--; e=s->data[s->top]; return e; } int GetTop(SqStack *s) { return s->data[s->top-1]; } int In(char c) { char ch[7]={'+','-','*','/','(',')','='}; for(int i=0;i<7;i++) if(c==ch[i]) return 1; return 0; } char Proceed(char op,char c) { char ch; if(op=='(' && c==')' || op=='=' && c=='=' ) ch = '='; else if(op=='+' || op=='-') /*栈顶元素为‘+’或‘-’的时候*/ switch(c) { case '+': case '-': case ')': case '=': ch = '>'; break; case '*': case '/': case '(': ch = '<'; } else if(op=='*' || op=='/') /*栈顶元素为‘*’或‘/’的时候*/ switch(c) { case '+': case '-': case '*': case '/': case ')': case '=': ch = '>'; break; case '(': ch = '<'; } else if(op=='(') /*栈顶元素为‘(’的时候*/ switch(c) { case '+': case '-': case '*': case '/': case '(': ch = '<'; break; case '=': printf("Error!\n"); return 0; } else if(op==')') /*栈顶元素为‘)’的时候*/ switch(c) { case '+': case '-': case '*': case '/': case '=': ch = '>'; break; case '(': printf("Error!\n"); return 0; } else if(op=='=') /*栈顶元素为‘#’的时候*/ switch(c) { case '+': case '-': case '*': case '/': case '(': ch = '<'; break; case ')': printf("Error!\n"); return 0; } return ch; } int Operate(int a,char r,int b) { int s; int d1=a; int d2=b; switch(r) { case '+':s=d1+d2;break; case '-':s=d2-d1;break; case '*':s=d1*d2;break; case '/':s=d2/d1; } return (s+'0'); } int EvalExpres() { int a,b,i=0,s=0; char c[80],r; InitStack(&optr); Push(&optr,'='); InitStack(&opnd); gets(c); while(c[i]!='='||GetTop(&optr)!='=') { if(!In(c[i])) { if(c[i]>='0'&&c[i]<='9') { s+=c[i]-'0'; while(!In(c[++i])) { s*=10; s+=c[i]-'0'; } Push(&opnd,s+'0'); s=0; } else return ERROR; } else switch(Proceed(GetTop(&optr),c[i])){ case '<': Push(&optr,c[i]); i++; break; case '=': Pop(&optr); i++; break; case '>': r=Pop(&optr); a=Pop(&opnd)-'0'; b=Pop(&opnd)-'0'; Push(&opnd,Operate(a,r,b)); break; } } return (GetTop(&opnd)-'0'); } int main() { int v; v = EvalExpres(); printf("%d",v); printf("\n"); return 1; }
评论
    相关推荐
    • 数据库课程设计
      一个数据库课程设计,access管理工具实现,用的是窗体!
    • 数据库课程设计
      数据库课程设计十分完整有需要的请下载啊谢谢
    • 数据库课程设计
      广东工业大学数据库课程设计,可视化界面连接数据库,delphi7
    • 数据库课程设计
      数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述
    • 数据库课程设计
      数据库课程设计》由周爱武、汪海威、肖云编著,遵循数据库课程设计的具体要求,独立于具体的数据库教材,从实际应用系统的需求着手,引导读者逐步完成数据库设计全过程,重点讲解数据库系统的需求分析、概念设计、...
    • 数据库课程设计
      数据库课程设计人事管理系统 数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计...
    • 数据库课程设计
      数据库课程设计,基于visual basic自助银行管理系统,界面很清爽,实用。同学都说好,所以就上传了!!!
    • 数据库课程设计
      数据库课程设计 里面有详细的文档资料 包含数据库一切的图 以及生成的数据库表文件 期末得分为优秀
    • 数据库课程设计
      可以作为数据库课程设计,也可以作为Java的课程设计,内容全面。本资源转载的,非本人原创。用于交流学习,特此申明!
    • 数据库课程设计
      数据库课程设计蓝天大学学生管理系统 2.商店信息管理系统 3.实验室机房收费管理系统 4.图书馆资料检索系统 5.企业库存管理系统 6.仓库管理系统 7.工程项目管理系统 8.教材管理系统 9.企业人事管理系统 10.企业财务...