• 大小: 74KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: 其他
  • 标签: 数据结构  

资源简介

数据结构的车厢调度课程设计报告书,具体讲述了车厢调度的过程,实验报告书内容详细

资源截图

代码片段和文件信息

#include
#include
#define MAXSIZE 10000
int n;
int path[MAXSIZE];   /*定义全局变量*/

struct pathss{
  int paths[MAXSIZE][MAXSIZE];
  int number;
}AllPath;           /*定义一个二维数组来保存所有的输出序列*/

struct SNode{
  int data[MAXSIZE];
  int top;
}S;                 /*栈的顺序存储结构的定义*/

void InitStack()    /*栈的初始化*/
{
  S.top=-1;
}

void Push(int q)    /*进栈*/
{
  S.data[++S.top]=q;
}

int Pop()           /*出栈*/
{
  int temp;
  temp=S.data[S.top--];
  return temp;
}

int StackEmpty()    /*判断栈是否为空*/
{
  if(S.top==-1)
    return 1;
  else
    return 0;
}

void Attemper(int posint path[]int cur)  /*调度过程*/
{
  int mi;
  if(pos   {
     Push(pos+1);   /*一个数进栈后要么立刻出栈要么进行下一个数的进栈*/
     Attemper(pos+1pathcur);
     Pop();
   }
 if(!StackEmpty())
   {
     m=Pop();       /*一个数出栈后要么继续出栈(栈不空)要么继续下一个数的进栈*/
     path[cur++]=m;
     Attemper(pospathcur);
     Push(m);
   }
 if(pos==n && StackEmpty())   /*一种可能输出序列产生*/
   {
     printf(“\t\t\t“);
     printf(“%2d:“AllPath.number+1);
     for(i=0;i  {
        printf(“%3d“path[i]);
        AllPath.paths[AllPath.number][i]=path[i];  /*将每种序列保存在二维数组里*/
     }
     printf(“\n“);
     AllPath.number++;
   }
}

void Print()   /*一个栈打印操作*/
{
  int i;
  for(i=S.top;i>=0;i--)
    printf(“\t\t\t  |%d|\n“S.data[i]);
}

void DisplayOnly(int kint Outputint Input)/*显示操作序列的状态的变化过程*/

  int j;
  getchar();    
  for(j=0;j<=Output;j++)
    printf(“<---%d“AllPath.paths[k][j]);   /*显示输出序列的状态变化*/
  printf(“\n“);
  Print();          
  printf(“\t\t\t\t\t“);
  for(j=Input;j<=n;j++)                      /*显示输入序列的状态变化*/
     printf(“<---%d“j);      
  printf(“\n“);
}

void ChooseDisplay()   /*状态变化过程*/
{
  int kOutputInput=1;                                /*k为输出序列的序号*/
  printf(“请输入你想要查看序列状态变化过程的序号:“);   /*output为当前输出的序号*/
  scanf(“%d“&k);                                      /*input为当前输入的序号*/
  k=k-1;
  InitStack();
  printf(“\n    输出序列\t           栈\t\t  输入序列“);
  DisplayOnly(k-11);
  for(Output=0;Output  { 
    if(AllPath.paths[k][Output]>=Input)      /*当输出序列中当前的数据大于等于入口处*/
      {                                      /*的数据时 入口处的数据要一直压栈*/
       while(AllPath.paths[k][Output]>=Input)/*直到当前的数据小于等于入口处的数据*/
         {
          Push(Input);
          Input++;
          DisplayOnly(kOutput-1Input);  
         }
       Pop();
       DisplayOnly(kOutputInput);  
      }   
    else                                     /*当序列中当前的数据小于入口处*/
{                                        /*的数据时弹出栈顶重新显示结果*/
       Pop();
       DisplayOnly(kOutputInput);  
      }
  }
}

void message()      /*菜单显示*/
{
  printf(“\n\t\t\t* * * * * * * * * * * * * * * * *\n “);
  printf(“\t\t\t*\t1:输入火车的长度N\t*\n“);
  printf(“\t\t\t*\t2:输出所有可能序列\t*\n“);
  printf(“\t\t\t*\t3:演示一个序列变化\t*\n“);
  printf(“\t\t\t*\t4:退出本程序\t\t*\n“);
  printf(“\t\t\t* * * * * * * * * * * * * * * * *\n“);
}

voi

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件    1206784  2008-01-03 18:25  数据结构课程设计报告模板(软件061).doc

     文件       3975  2008-01-03 18:23  Cpp1.cpp

     文件     200772  2008-01-03 15:34  Cpp1.exe

----------- ---------  ---------- -----  ----

              1411531                    3


评论

共有 条评论