首页 > 其他 > 详细

共享栈

时间:2014-09-11 02:22:42      阅读:362      评论:0      收藏:0      [点我收藏+]
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

typedef int dataType;
#define MAXSIZE 8

typedef struct shareStack
{
    dataType data[MAXSIZE];
    int leftTop;
    int rightTop;
}shareStack;

void initshareStack(shareStack *s)
{
    s->leftTop=-1;
    s->rightTop=MAXSIZE;
    memset(s->data, 0, sizeof(int)*MAXSIZE);
}

void push(shareStack *s,int e,int stackType)
{
    if (s->leftTop+1==s->rightTop)
    {
        return;
    }
    if (stackType==1)
    {
        s->leftTop++;
        s->data[s->leftTop]=e;
    }
    if (stackType==2) {
        s->rightTop--;
        s->data[s->rightTop]=e;
        printf("%d",e);
    }
}
void pop(shareStack *s,int *e,int stackType)
{
    if (stackType==1)
    {
        if (s->leftTop==-1)
        {
            return;
        }
        *e=s->data[s->leftTop];
        s->leftTop--;
    }
    if (stackType==2)
    {
        if (s->rightTop==MAXSIZE)
        {
            return;
        }
        *e=s->data[s->rightTop];
        s->rightTop++;
    }
}

int main(void)
{
    shareStack s;
    initshareStack(&s);
    
    int temp;
    printf("Push Order:\n");
    for (int i=0; i<8; i++) {
        push(&s, i, 2);
    }
    printf("\n");
    printf("Pop Order:\n");
    for (int i=0; i<8; i++) {
        pop(&s, &temp, 2);
        printf("%d",temp);
    }
    printf("\n");
    return 0;
}


本文出自 “网络学习总结” 博客,请务必保留此出处http://8947509.blog.51cto.com/8937509/1550952

共享栈

原文:http://8947509.blog.51cto.com/8937509/1550952

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!