数组反转(中)


好了。我们这一次要用栈。

栈是先进后出的。如果我们把一些元素(在这里况且设为Q)放入栈,然后不停地出栈,直到栈空了为止。出来的顺序一定是反的。

所以呢?可以利用本性质来进行解决。

第一步:定义“栈”这种数据类型(我是用C语言实现的,C++中有stack,可以少打几行代码)

typedef struct stack
{
    int data[10];
    int top;
}REVSTACK;
REVSTACK stack;
第二步:写最基本的栈操作函数:

1.初始化栈。

void init()
{
    stack.top = -1;
}

2. 进栈与出栈:

void pushToStack(int pushing)
{
    stack.top++;
    stack.data[stack.top] = pushing;
}

int popFromStack()
{
    int retVal = stack.data[stack.top];
    stack.top--;
    return retVal;
}

3. 反转:

void reverseByStack()
{
    for (int i = 0;i < 10;++i)
    {
        pushToStack(array[i]);
    }
    memset(array,0,sizeof(array));
    for (int i = 0;i < 10;++i)array[i] = popFromStack();
    for (int i = 0;i < 10;++i)printf("%d ",array[i]);
    
}

好了,大功告成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值