From 9650cc8fd80ee0274a1952efe4fff539b4f67738 Mon Sep 17 00:00:00 2001 From: Xu Bai <1373953675@qq.com> Date: Sun, 30 Jun 2019 21:25:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=A4=E6=A0=88=E5=85=B1=E4=BA=AB=E7=A9=BA?= =?UTF-8?q?=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _02.栈与队列/_b.共享栈.c | 151 +++++++++++++++++++++++++++++++++++++++ a.out | Bin 51291 -> 51337 bytes 2 files changed, 151 insertions(+) create mode 100644 _02.栈与队列/_b.共享栈.c diff --git a/_02.栈与队列/_b.共享栈.c b/_02.栈与队列/_b.共享栈.c new file mode 100644 index 0000000..62f6cee --- /dev/null +++ b/_02.栈与队列/_b.共享栈.c @@ -0,0 +1,151 @@ +/* + * @Author: Xu Bai + * @Date: 2019-06-30 20:54:59 + * @LastEditors: Xu Bai + * @LastEditTime: 2019-06-30 21:25:05 + */ +#include "stdio.h" +#include "stdlib.h" +#include "io.h" + +#define MAXSIZE 20 +#define TRUE 1 +#define FALSE 0 +#define OK 1 +#define ERROR 0 + +typedef int Status; +typedef int ElemType; + +typedef struct +{ + ElemType data[MAXSIZE]; + int top1; + int top2; +} SqDoubleStack; + +Status visit(ElemType e) +{ + printf("%d ", e); + return OK; +} + +Status InitStack(SqDoubleStack *S) +{ + S->top1 = -1; + S->top2 = MAXSIZE; + return OK; +} + +Status ClearStack(SqDoubleStack *S) +{ + S->top1 = -1; + S->top2 = MAXSIZE; + return OK; +} + +Status StackEmpty(SqDoubleStack S) +{ + if (S.top1 == -1 && S.top2 == MAXSIZE) + { + return TRUE; + } + return FALSE; +} + +int StackLength(SqDoubleStack S) +{ + return (S.top1 + 1) + (MAXSIZE - S.top2); +} + +Status Push(SqDoubleStack *S, ElemType e, int stackNumber) +{ + if (S->top1 + 1 == S->top2) + { + printf("Stack overflow"); + return ERROR; + } + if (stackNumber == 1) + { + S->data[++S->top1] = e; + } + else if (stackNumber == 2) + { + S->data[--S->top2] = e; + } + else + { + printf("stackNumber = 1 or 2"); + return ERROR; + } + return OK; +} + +Status Pop(SqDoubleStack *S, ElemType *e, int stackNumber) +{ + if (stackNumber == 1) + { + if (S->top1 == -1) + { + return ERROR; + } + *e = S->data[S->top1--]; + } + else if (stackNumber == 2) + { + if (S->top2 == MAXSIZE) + { + return ERROR; + } + *e = S->data[S->top2++]; + } + else + { + return ERROR; + } + + return OK; +} + +Status StackTraverse(SqDoubleStack S) +{ + int i = 0; + while (i <= S.top1) + { + visit(S.data[i++]); + } + i = S.top2; + while (i < MAXSIZE) + { + visit(S.data[i++]); + } + printf("\n"); + return OK; +} + +int main() +{ + int j; + ElemType e; + SqDoubleStack S; + InitStack(&S); + for (j = 0; j <= 5; j++) + { + Push(&S, j, 1); + } + for (j = MAXSIZE; j >= MAXSIZE - 2; j--) + { + Push(&S, j, 2); + } + printf("Traverse: \n"); + StackTraverse(S); + printf("pop 1 &2 \n"); + Pop(&S, &e, 1); + Pop(&S, &e, 2); + StackTraverse(S); + ClearStack(&S); + printf("Clear!\n"); + StackTraverse(S); + getchar(); + return OK; +} \ No newline at end of file diff --git a/a.out b/a.out index 96d5ea304a0733809176b3c71901595d81ea3a3d..4dee120f4c9b27c461217ddfeb24fc64390eb4cd 100644 GIT binary patch delta 8605 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 delta 8200 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