若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。


  • 运维

  • 前端

  • 编程

  • 随笔

  • hust-oj

2243: 不同出栈情况(栈和队列)

发表于 2017-10-06   |   分类于 HUSTOJ   |   阅读次数 1,404

题目描述

假设有n个元素依次进栈,给出他们不同的出栈情况。输入n与元素。

输入

3
1 2 3

输出

1 2 3
1 3 2
3 2 1
2 1 3
2 3 1

样例输入

2
1 2

样例输出

1 2
2 1

参考代码

#include<stdio.h> 
#include<string.h>    
char tmp[10];
int n;
void f(int pos,int len,char s[]) 
{
    int i,j,t=0;
    char c[10];
    if(len==strlen(s)-1) 
    {
        t=len-1;
        tmp[pos]=s[len];
        for (j=1;j<len+1;j++) 
        {
            tmp[pos+j]=s[t];
            t--;
        }
        for (i=0;i<n-1;i++) 
                   printf("%c ",tmp[i]);
        printf("%cn",tmp[i]);
        return;    
    }    
    tmp[pos]=s[len];    
    memset(c,0,sizeof(c));    
    for(i=0;i<strlen(s);i++)    
    {    
        if(i!=len)    
        {    
            c[t]=s[i];    
            t++;    
        }    
    }        
    if(len>0)
        len--;    
    for(i=len;i<strlen(c);i++)    
    {    
        f(pos+1,i,c);    
    }    
    return;    
}    
int main()    
{    
    int i=0;    
    char s[10];        
    memset(s,0,sizeof(s));       
    scanf("%d",&n);    
    for(i=0;i<n;i++)    
        s[i]=i+'1';         
    for(i=0;i<n;i++) 
        f(0,i,s);
    return 0;
}

解析

暂无

hustoj

发表评论 取消回复

邮箱地址不会被公开。 必填项已用*标注

*
*


hoxis wechat
著作权归作者所有
站点更新说明
  • 文章目录
  • 站点概览
若是凉夜已成梦

若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。

1904 日志
6 分类
12 标签
RSS
weibo github twitter facebook

友情链接

Dreams孤独患者 Skip 原站点
© 2017 若是凉夜已成梦
Powered by WordPress | 已运行
Theme By NexT.Mist