⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ting4.c

📁 用c写的数据结构问题
💻 C
字号:
#include"stdio.h"
#include"conio.h"
#include"alloc.h"
#define N 10

struct seqstack;
typedef struct seqstack *pseqstack;
struct seqstack
{
 int number[N];
 int n;
 };
int total=0;
int n;

pseqstack create_seq(void)
{
 pseqstack p;
 printf("input n:\n");
 scanf("%d",&n);
 p=(pseqstack)malloc(sizeof(struct seqstack));
 if(p==NULL)
   printf("out of space");
 else
   p->n=-1;
 return(p);
 }

void initial_seq(void)
{
 int i,m=-1,s[N];
 pseqstack p;
 p=create_seq();
 if(p==NULL)exit(0);
 for(i=0;i<n;i++)
 {
  p->number[i]=n-i;
  p->n++;
  }
 display_line(p,s,m);
 }

display_line(pseqstack p,int l[],int m)
{
 int i,j,k,temp1,temp2,temp,rr[N][N],m1;
 pseqstack q[N];

 if(p->n==-1){for(i=0;i<n;i++)printf("%d",l[i]);}
 for(i=p->n;i>=0;i--)
  {

   q[i]=(pseqstack)malloc(sizeof(struct seqstack));
   if(q[i]==NULL)exit(0);
   //将没有输出的数据保存在另外一个栈中
   for(j=0;j<i;j++)
     q[i]->number[j]=p->number[j];
   for(;j<p->n;j++)
    q[i]->number[j]=p->number[j+1];
    q[i]->n=p->n-1;
   //对栈中数据排序
   for(k=i;k<q[i]->n;k++)
   {
     temp1=k;
     for(j=k+1;j<=q[i]->n;j++)
       if(q[i]->number[temp1]>q[i]->number[j])
	 temp1=j;
     if(temp1!=k)
      {
       temp2=q[i]->number[temp1];
       q[i]->number[temp1]=q[i]->number[k];
       q[i]->number[k]=temp2;
       }
    }
   //将栈中没有的数据保存在数组中
   for(j=0;j<=m;j++)
     rr[i][j]=l[j];
   m1=m+1;
   rr[i][j]=p->number[i];
   display_line(q[i],rr[i],m1);
   while(p->number[i]>p->number[i-1])i--;
   printf(" ");
   }
  }

main()
{
 int flag;
 do{
 clrscr();
 initial_seq();
 printf("input flag:\n");
 scanf("%d",&flag);
 }while(flag);
 getch();
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -