- 博客(6)
- 收藏
- 关注
原创 第三章课后习题24-33
3.24int g(int m,int n);int main(){ int m,n; cout<<"请输入m和n的值:"; cin>>m>>n; if(n>=0) cout<<g(m,n)<<endl; else cout<<"No Solution!"; return 0; }int g(int m,int n){ if(m>0) return (g(m-1,2*n)+n); else
2021-02-15 10:50:57 412
原创 第三章课后习题15-23
3.10void test(int &sum){ int x; scanf(x); if(x==0) sum=0; else{ test(sum);sum+=x; } printf(sum); } 答案:void test(int &sum){ Stack s; InitStack(s); int x; do{ scanf(x); Push(s,x); }while(x>0); while(!StackEmpty(s)){ Po
2021-02-13 13:26:44 806 1
原创 栈的应用
1、迷宫求解typedef struct{ int ord; //通道块在路径上的‘序号’ PosType seat; //通道块在迷宫中的‘坐标位置’ int di; //从此通道块走向下一通道块的“方向 ” }SElemType; //栈的元素类型 Status MazePath(MazeType maze,PosType start,PosType end){ //若迷宫maze中存在从入口start到出口end的通道,则求得一条存放在栈中(从栈底到栈顶),并返回TRU
2021-02-06 15:33:59 282
原创 3.3栈和队列的应用
1、栈在括号匹配中的应用1、假设一个算术表达式中包含圆括号、方括号、花括号3种类型的括号,编写一个算法来判断表达式中的括号是否匹配,以字符‘\0’作为算术表达式的结束符bool BracketCheck(char *str){ int i=0; while(str[i]!='\0'){ switch(str[i]){ //左括号入栈 case '(':Push(S,'(');break; case '[':Push(S,'[');break; case '{':Push
2021-02-03 12:00:36 338
原创 3.2队列
1、在循环队列的类型结构中,增设一个tag的整型变量,进队时置tag为1,出队时置tag为0(因为只有入队操作可能导致队满,也只有出队操作可能导致队空)。队列Q初始时,置tag=0、front=rear=0//设tag的循环队列入队算法:int EnQueue1(SqQueue &Q,ElemType x){ if(Q.front==Q.rear&&tag==1) return 0;//两个条件都满足时则队满 Q.data[Q.rear]=x; Q.rear=(
2021-02-02 15:19:16 130
原创 3.1栈
3.int Judge(char A[]){//判断字符数组A中的输入输出序列是否合法序列。如是,返回true;否则返回false int i=0; int j=k=0;//i为下标,j和k分别为字母I和O的个数 while(A[i]!='0'){//未到字符数组尾 switch(A[j]){ case 'I':j++;break;//入栈次数增1 case 'O':k++; if(k>j) { printf("序列非法\n"); ex
2021-02-01 16:00:56 131
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人